Hướng dẫn kích hoạt cổng thanh toán PayPal cho VNĐ trên WooCommerce một cách đơn giản.
Nếu bạn chưa biết thì Việt Nam Đồng (VNĐ) không phải là một đơn vị tiền tệ được hỗ trợ chính thức bởi PayPal. Do đó, trong WooCommerce, nếu thiết lập đơn vị tiền tệ là VNĐ thì bạn sẽ không thể kích hoạt được cổng thanh toán PayPal Standard. Để giải quyết tình trạng này, chúng ta cần phải chuyển đổi VNĐ sang 1 đơn vị tiền tệ khác được PayPal hỗ trợ, chẳng hạn như USD. Trong bài viết hôm nay, tôi sẽ hướng dẫn cho các bạn cách kích hoạt cổng thanh toán PayPal cho VNĐ một cách đơn giản nhất.
Tham khảo thêm:
- Tích hợp thanh toán quét mã QR cho WooCommerce
- Loại bỏ chữ product và product-category trong WooCommerce
Kích hoạt thanh toán PayPal cho VNĐ
1. Đầu tiên, các bạn cần phải chèn đoạn code sau đây vào file functions.php
của theme bạn đang sử dụng. Các bạn cũng có thể chèn nó thông qua plugin Code Snippets để tránh code bị xóa mất lúc nâng cấp theme.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
/*Step 1 Code to use VND currency to display Viet Nam Dong in WooCommerce:*/ add_filter( 'woocommerce_currencies', 'add_vnd_currency' ); function add_vnd_currency( $currencies ) { $currencies['VND'] = __( 'Viet Nam Dong', 'woocommerce' ); return $currencies; } /*Step 2 Code to add VND currency symbol in WooCommerce:*/ add_filter('woocommerce_currency_symbol', 'add_vnd_currency_symbol', 10, 2); function add_vnd_currency_symbol( $currency_symbol, $currency ) { switch( $currency ) { case 'VND': $currency_symbol = 'VND'; break; } return $currency_symbol; } add_filter( 'woocommerce_paypal_supported_currencies', 'add_vnd_paypal_valid_currency' ); function add_vnd_paypal_valid_currency( $currencies ) { array_push ( $currencies , 'VND' ); return $currencies; } /*Step 3 – Code to change 'VND' currency to ‘USD’ before checking out with Paypal through WooCommerce:*/ add_filter('woocommerce_paypal_args', 'convert_vnd_to_usd', 11 ); function convert_vnd_to_usd($paypal_args){ if ( $paypal_args['currency_code'] == 'VND'){ $convert_rate = 20000; //Set converting rate $paypal_args['currency_code'] = 'USD'; //change VND to USD $i = 1; while (isset($paypal_args['amount_' . $i])) { $paypal_args['amount_' . $i] = round( $paypal_args['amount_' . $i] / $convert_rate, 2); ++$i; } if ( $paypal_args['shipping_1'] > 0 ) { $paypal_args['shipping_1'] = round( $paypal_args['shipping_1'] / $convert_rate, 2); } if ( $paypal_args['discount_amount_cart'] > 0 ) { $paypal_args['discount_amount_cart'] = round( $paypal_args['discount_amount_cart'] / $convert_rate, 2); } if ( $paypal_args['tax_cart'] > 0 ) { $paypal_args['tax_cart'] = round( $paypal_args['tax_cart'] / $convert_rate, 2); } } return $paypal_args; } |
Lưu ý: ở dòng 24, các bạn có thể thay thế 20000
bằng tỉ giá cho phù hợp. Trong code bên trên, chúng tôi để tỉ giá $1 = 20000 VNĐ.
2. Truy cập WooCommerce => Settings => General => kéo xuống khu vực Currency options và thiết lập như hình bên dưới.
Trong đó:
- Currency: đơn vị tiền tệ.
- Currency position: vị trí hiển thị của đơn vị tiền tệ.
- Thousand separator: dấu phân tách phần ngàn. Tại Việt Nam, chúng ta sử dụng dấu (.) thay vì dấu phẩy (,).
- Decimal separator: dấu phân tách thập phân. Tại Việt Nam, chúng ta sử dụng dấu (,) thay vì dấu chấm (.).
- Number of decimals: số lượng chữ số đằng sau dấu phân tách thập phân. Chúng ta để là 0 vì trong VNĐ hiện tại không có đơn vị nào nhỏ hơn 1 VNĐ.
3. Chuyển qua tab Payments, các bạn sẽ thấy cổng thanh toán PayPal đã được kích hoạt và giờ đây các bạn đã có thể click vào nút Manage để tiến thành thiết lập thông tin.
Chi tiết về cách thiết lập cổng thanh toán PayPal Standard cho WooCommerce, tôi sẽ gửi đến các bạn trong bài viết tiếp theo.
Xử lý lỗi đơn hàng không tự động hoàn tất
Bây giờ, có một vấn đề chúng ta cần giải quyết đó là đơn hàng không tự động hoàn tất, ngay cả khi khách hàng đã tiến hành thanh toán thành công và tiền đã về ví PayPal của bạn. Điều này có nghĩa là bạn sẽ phải xác nhận hoàn tất đơn hàng theo cách thủ công, thực sự rất bất tiện, đặc biệt là khi bạn bán sản phẩm số (khách hàng không thể download sản phẩm ngay lập tức sau khi thanh toán mà phải chờ bạn phê duyệt).
Để khắc phục tình trạng này, các bạn cần phải truy cập vào host thông qua File Manager của cPanel/ DirectAdmin hoặc phần mềm FTP, tìm theo đường dẫn /wp-content/plugins/woocommerce/includes/gateways/paypal/includes
và mở file class-wc-gateway-paypal-ipn-handler.php
ra. Tìm tiếp 2 dòng code sau đây:
1 2 |
$this->validate_currency( $order, $posted['mc_currency'] ); $this->validate_amount( $order, $posted['mc_gross'] ); |
Và sửa thành:
1 2 |
//$this->validate_currency( $order, $posted['mc_currency'] ); //$this->validate_amount( $order, $posted['mc_gross'] ); |
để vô hiệu hóa chúng. Các bạn sẽ phải lặp lại công việc này sau mỗi lần nâng cấp WooCommerce lên phiên bản mới, hơi bất tiện nhưng hiện tại chưa có giải pháp tự động nào khả quan hơn.
Cuối cùng, hãy thử đặt hàng và kiểm tra kết quả. Không đến nỗi quá phức tạp phải không nào? Chúc các bạn thành công!
Bạn có đang sử dụng cổng thanh toán PayPal cho VNĐ trên website WooCommerce của mình không? Bạn đã sử dụng phương pháp nào để làm điều đó? Hãy chia sẻ nó với chúng tôi trong khung bình luận bên dưới.
Nguồn: https://wpcanban.com