Hoàng Web

Thiết Kế Website WordPress

  • Kho giao diện
  • Dịch Vụ
    • Thiết kế web giá rẻ
    • Thiết kế website WordPress
    • Hosting Miễn Phí 100GB
    • Tích hợp thanh toán MoMo, ViettelPay, Vietcombank, MB..
    • Tối ưu Google PageSpeed
    • Sửa lỗi nâng cấp website
    • Viết plugin WordPress
    • Code Tool theo yêu cầu
  • Bảng giá
  • Quy trình làm việc
  • Giới thiệu
  • Liên Lạc
Trang chủ » Wordpress » [WooCommerce] Thêm tiền tệ mới & tỉ giá chuyển đổi cho thanh toán Paypal

[WooCommerce] Thêm tiền tệ mới & tỉ giá chuyển đổi cho thanh toán Paypal

Thứ Bảy, 07/03/2020 by Hoàng Quách

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

WooCommerce là một plugin tuyệt vời giúp bạn thiết kế trang web bán hàng. Mặc dù với chức năng phong phú của nó, bạn có thể gặp phải một số vấn đề liên quan với tiền tệ. Những vấn đề và giải pháp được mô tả cụ thể dưới đây:

  1. Tiền tệ của một quốc gia mà không có trong danh sách hỗ trợ. Làm thế nào để thêm đơn vị tiền tệ trong WooCommerce
  2. 2. Làm thế nào các đơn vị tiền tệ có thể được thay đổi (ví dụ: лв) theo đồng tiền mới được bổ sung
  3. 3. Làm sao để WooCommerce cho phép thanh toán Paypal, mặc dù tiền tệ của chúng tôi không được hỗ trợ

1. Nếu bạn không tìm thấy tiền tệ của mình trong danh sách dropdown trên trang cài đặt WooCommerce, lúc này bạn cần phải thêm nó. Ví dụ chúng ta sẽ cần thêm đồng tiền ‘Bulgarian Lev (лв.)‘ . Chúng ta có thể làm điều này bằng cách thêm đoạn mã sau vào tệp functions.php.

add_filter( 'woocommerce_currencies', 'add_bgn_currency' );
function add_bgn_currency( $currencies ) {
 $currencies['BGN'] = __( 'Bulgarian Lev (лв.)', 'woocommerce' );
 return $currencies;
}

$currencies['BGN'] – có thể thay đổi chuỗi ‘BGN’ đại diện cho đơn vị tiền tệ nếu muốn. Sau đó bạn cần ghi nhớ nó, vì từ đây trở đi tiền tệ của chúng tôi sẽ được xác định với chuỗi này.

Bulgarian Lev (лв.)  – đây là chuỗi chúng ta muốn xuất hiện trong danh sách thả xuống với các loại tiền tệ. (Để biết thông tin các bộ lọc được áp dụng trong file woocommerce\admin\Settings\settings-init.php)

2. Bây giờ chúng ta cần phải thêm các đơn vị tiền tệ. Chúng ta sẽ khai báo ký hiệu hiển thị cho đồng tiền này:

add_filter('woocommerce_currency_symbol', 'add_bgn_currency_symbol', 10, 2);
function add_bgn_currency_symbol( $currency_symbol, $currency ) {
 switch( $currency ) {
 case 'BGN': $currency_symbol = 'лв.'; break;
 }
 return $currency_symbol;
}

case  ‘X’ – mình đã khai báo $currencies['X'] trong mã trước đó, trong đó X trong trường hợp của chúng tôi là BGN

$currency_symbol = 'лв.' – biểu tượng/ký hiệu tiền tệ mà chúng tôi sẽ sử dụng để  hiển thị giá sản phẩm trên trang bán hàng của chúng tôi. (Chi tiết về bộ lọc được áp dụng trong woocommerce\woocommerce-core-functions.php)

Nếu ký hiệu tiền tệ xuất hiện trước giá , bạn có thể thay đổi cài đặt này trong phần  Admin Panel -> WooCommerce-> Settings-> Catalogue-> Price settings  -> từ danh sách thả xuống ‘currency sign position’ chúng ta chọn ‘Right (with distance)’ . Giá của bạn sẽ trông giống như ‘100 лв.’

3. Vấn đề đầu tiên có thể gặp phải khi bạn muốn sử dụng Paypal với đồng tiền mới là một lỗi khi chúng ta cố gắng truy cập vào các cấu hình Paypal trong WooCommerce Admin Panel. Để Paypal hoạt động được, bạn cần khai báo đơn vị tiền tệ sẽ được hỗ trợ.

add_filter( 'woocommerce_paypal_supported_currencies', 'add_bgn_paypal_valid_currency' );     
    function add_bgn_paypal_valid_currency( $currencies ) {  
     array_push ( $currencies , 'BGN' );
     return $currencies;  
}

(Chi tiết bộ lọc được áp dụng trong woocommerce/classes/gateways/paypal/class-wc-paypal.php )

Một vấn đề khác là Paypal không làm việc với BGN. Trước khi tiền hành thanh toán chúng ta cần chuyển đổi sang đơn vị tiền tệ mà Paypal có hỗ trợ, ví dụ euro. Thêm đoạn code sau đây sau:

add_filter('woocommerce_paypal_args', 'convert_bgn_to_eur');
function convert_bgn_to_eur($paypal_args){
	if ( $paypal_args['currency_code'] == 'BGN'){
		$convert_rate = 1.954; //set the converting rate
		$paypal_args['currency_code'] = 'EUR'; //change BGN to EUR
		$i = 1;
		while (isset($paypal_args['amount_' . $i])) {
			$paypal_args['amount_' . $i] = round( $paypal_args['amount_' . $i] / $convert_rate, 2);
			++$i;
		}
	}
	return $paypal_args;
}

Ở đoạn mã trên chúng tôi kiểm tra nếu $paypal_args['currency_code'] == 'X' , trong đó X là đơn vị tiền tệ mới (BGN). Tuy nhiên ‘BGN’ không được hỗ trợ bởi Paypal . (Bộ lọc này được sử dụng trong woocommerce\classes\gateways\paypal\class-wc-paypal.php )

Nếu bạn sử dụng plugin woocommerce gateway paypal express checkout sử dụng đoạn code thay thế sau:

add_filter('woocommerce_paypal_express_checkout_request_body', function($params) {
    $convert_rate = 23297.4;
    $convert_cur = 'USD';
    
    if($params['PAYMENTREQUEST_0_CURRENCYCODE']=='VND' ) {
        foreach($params as $k=> $v) {
            if(strpos($k, 'CURRENCYCODE')!==false) $params[$k] = $convert_cur;
            if(strpos($k, 'AMT')!==false && is_numeric($v) && $v) $params[$k] = round( $params[$k] / $convert_rate, 2);
        }
    }
    
    return $params;
}, 99999);

Nếu thông tin trên là hữu ích cho bạn, hãy chia sẻ bài viết này với bạn bè của bạn bằng cách sử dụng các nút bên dưới bài viết.

Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên Twitter và Facebook

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Chuyên mục: Wordpress Tìm kiếm: paypal, Woocommerce

Tôi giúp gì cho bạn?

HOÀNG WEB

Địa chỉ: Tây Sơn, Phường Quang Trung, Quận Đống Đa, Hà Nội

Hotline: 0987 342 124 – 0868 292 303 (8h:00 – 21h:00)

Email: [email protected]

Website: www.hoangweb.com

KẾT NỐI VỚI TÔI

  • Facebook
  • GitHub
  • YouTube

SẢN PHẨM

  • Plugin Thanh Toán Quét Mã QR Code Tự Động
  • WP2Speed – Tối ưu Google Speed
  • 23WebHost – Hosting Miễn Phí 100GB

LIÊN KẾT

  • Có nên thuê thiết kế website giá rẻ?
  • Hướng dẫn thanh toán
  • Chính sách hoàn tiền
  • Trung tâm hỗ trợ

Copyright © 2023 | All rights reserved | HOANG WEB
Mọi hình thức sao chép nội dung trên website này mà chưa được sự đồng ý đều là trái phép.