首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据伍尔商业的具体城市显示交货现金

根据伍尔商业的具体城市显示交货现金
EN

Stack Overflow用户
提问于 2019-09-06 15:06:16
回答 1查看 1.5K关注 0票数 3

在Woocommerce中,我只使用以下代码显示特定城市的现金交付支付方法:

代码语言:javascript
复制
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' );

效果很好。现在我需要处理多个城市像华盛顿,旧金山等..。

因此,我尝试了以下几点:

代码语言:javascript
复制
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经历了技术困难“。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-06 16:57:07

更新的

下面的代码将为特定定义的城市启用COD支付。

您需要使用一个具有 PHP conditional function的允许城市数组,例如:

代码语言:javascript
复制
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文件中。测试和工作。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57824520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档