根据 Woocommerce 中的特定城市显示货到付款 (COD)
Show Cash on delivery (COD) based on specific cities in Woocommerce
在 Woocommerce 中,我使用以下代码仅显示特定城市的货到付款付款方式:
function payment_gateway_disable_city( $available_gateways ) {
global $woocommerce;
if ( isset( $available_gateways['cod'] ) && $woocommerce->customer->get_shipping_city() == 'New York') {
unset( $available_gateways['cod'] );
}
return $available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_city' );
它工作正常。现在我需要处理华盛顿、旧金山等多个城市...
所以我尝试了以下方法:
function payment_gateway_disable_city( $available_gateways ) {
global $woocommerce;
if ( isset( $available_gateways['cod'] ) && $woocommerce->customer->get_shipping_city() == 'New York', 'San Fransisco' ) {
unset( $available_gateways['cod'] );
}
return $available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_city' );
但它不起作用……我得到 "WordPress experiencing technical difficulties"。
感谢任何帮助。
已更新
以下代码将为特定定义的城市启用 COD 支付。
您需要使用一组包含 in_array()
PHP conditional function 的允许城市,例如:
add_filter( 'woocommerce_available_payment_gateways', 'cities_based_payment_gateway_cod' );
function cities_based_payment_gateway_cod( $available_gateways ) {
if ( is_admin() ) return $available_gateways; // Only on frontend
// HERE define the allowed cities in this array
$cities = array( 'New York', 'San Francisco' );
if ( isset( $available_gateways['cod'] ) && ! in_array( WC()->customer->get_shipping_city(), $cities ) ) {
unset( $available_gateways['cod'] );
}
return $available_gateways;
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
在 Woocommerce 中,我使用以下代码仅显示特定城市的货到付款付款方式:
function payment_gateway_disable_city( $available_gateways ) {
global $woocommerce;
if ( isset( $available_gateways['cod'] ) && $woocommerce->customer->get_shipping_city() == 'New York') {
unset( $available_gateways['cod'] );
}
return $available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_city' );
它工作正常。现在我需要处理华盛顿、旧金山等多个城市...
所以我尝试了以下方法:
function payment_gateway_disable_city( $available_gateways ) {
global $woocommerce;
if ( isset( $available_gateways['cod'] ) && $woocommerce->customer->get_shipping_city() == 'New York', 'San Fransisco' ) {
unset( $available_gateways['cod'] );
}
return $available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_city' );
但它不起作用……我得到 "WordPress experiencing technical difficulties"。
感谢任何帮助。
已更新
以下代码将为特定定义的城市启用 COD 支付。
您需要使用一组包含 in_array()
PHP conditional function 的允许城市,例如:
add_filter( 'woocommerce_available_payment_gateways', 'cities_based_payment_gateway_cod' );
function cities_based_payment_gateway_cod( $available_gateways ) {
if ( is_admin() ) return $available_gateways; // Only on frontend
// HERE define the allowed cities in this array
$cities = array( 'New York', 'San Francisco' );
if ( isset( $available_gateways['cod'] ) && ! in_array( WC()->customer->get_shipping_city(), $cities ) ) {
unset( $available_gateways['cod'] );
}
return $available_gateways;
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。已测试并有效。