今天我們來看看 WooCommerce Checkout 頁面,特別是在選擇特定的運送方式時如何禁用支付網關。請享用!
WooCommerce:禁用特定運送方式的付款網關
WooCommerce 2.6+
/** * @snippet Disable Payment Gateway For Specific Shipping Method * @sourcecode https://businessbloomer.com/?p=19867 * @author Rodolfo Melogli * @testedwith WooCommerce 3.1.1 */ // Disable 'cod' gateway for 'local_pickup' shipping method function bbloomer_gateway_disable_shipping_30( $available_gateways ) { global $woocommerce; $chosen_methods = WC()->session->get( 'chosen_shipping_methods' ); $chosen_shipping = $chosen_methods[0]; if ( isset( $available_gateways['cod'] ) && 0 === strpos( $chosen_shipping, 'local_pickup' ) ) { unset( $available_gateways['cod'] ); } return $available_gateways; } add_filter( 'woocommerce_available_payment_gateways', 'bbloomer_gateway_disable_shipping_30' );
WooCommerce 低於 2.6
/** * @snippet Disable Payment Gateway For Specific Shipping Method * @sourcecode https://businessbloomer.com/?p=19867 * @author Rodolfo Melogli * @testedwith WooCommerce 2.5.2 */ // Disable 'cod' gateway for 'local_delivery' shipping method function bbloomer_gateway_disable_shipping( $available_gateways ) { global $woocommerce; $chosen_methods = WC()->session->get( 'chosen_shipping_methods' ); $chosen_shipping = $chosen_methods[0]; if ( isset( $available_gateways['cod'] ) && $chosen_shipping == 'local_delivery' ) { unset( $available_gateways['cod'] ); } return $available_gateways; } add_filter( 'woocommerce_available_payment_gateways', 'bbloomer_gateway_disable_shipping' );
如何添加此代碼?
1 、您可以將 PHP 代碼片段放置在主題或子主題的 functions.php 文件的底部 (如果是 CSS 代碼,請添加到子主題的 style.css 文件底部) 修改之前建議先備份原始文件,若出現錯誤請先刪除此代碼。
2 、 WordPress 4.9 後改進了主題編輯器,對於 CSS 代碼也可打開網站前台編輯器的 【自定義】,複製代碼添加到自定義 css 中。
此代碼是否可用?
如需幫助或是您有更好的方案想分享?請到薇曉朵 WooCommerce 中文論壇留言告知,我們希望可以幫到更多國內的 WooCommerce 用户也希望您的參與。