【问题标题】:Hide some Checkout Fields issue in Woocommerce在 Woocommerce 中隐藏一些结帐字段问题
【发布时间】:2018-07-05 17:07:18
【问题描述】:

我发现即使在使用后隐藏某些结帐字段也存在问题:

// woocommerce checkout page  
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {

unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_country']);
unset($fields['billing']['billing_state']);
return $fields;
}

我什至使用插件进行了测试,但问题仍然存在,它仍然在前端显示输入。

添加代码后,您可以看到输入仍在显示,但它比其他字段短

【问题讨论】:

    标签: php wordpress woocommerce field checkout


    【解决方案1】:

    在特定情况下,您需要使用woocommerce_default_address_fields 过滤器。”related official woocommerce documentation ...

    所以你应该试试这个:

    add_filter( 'woocommerce_default_address_fields', 'custom_checkout_fields' 20, 1 );
    function custom_checkout_fields( $address_fields ) {
    
        unset($address_fields['company']);
        unset($address_fields['country']);
        unset($address_fields['state']);
    
        return $address_fields;
    }
    

    代码进入您的活动子主题(或活动主题)的 function.php 文件中。

    它应该可以工作......

    【讨论】:

    • 谢谢您的回答对先生有帮助
    【解决方案2】:

    解决了定义add_action()函数中使用的参数的优先级和数量的问题:

    // woocommerce checkout page  
    add_filter( 'woocommerce_checkout_fields' ,'custom_override_checkout_fields',20,1 );
    function custom_override_checkout_fields( $fields ) {
    
    unset($fields['billing']['billing_company']);
    unset($fields['billing']['billing_country']);
    unset($fields['billing']['billing_state']);
    return $fields;
    }
    

    这里是解决方案^^

    【讨论】:

    • 你的也对其他人有用……谢谢
    猜你喜欢
    • 2017-07-25
    • 2015-07-09
    • 2019-01-21
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 2021-07-23
    • 2021-02-17
    • 2021-10-27
    相关资源
    最近更新 更多