Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 已删除的签出字段仍然是必需的_Php_Wordpress_Woocommerce_Hook Woocommerce - Fatal编程技术网

Php 已删除的签出字段仍然是必需的

Php 已删除的签出字段仍然是必需的,php,wordpress,woocommerce,hook-woocommerce,Php,Wordpress,Woocommerce,Hook Woocommerce,我正在删除特定的Woocoomerce签出字段,因为提货订单不需要这些字段 add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' ); function custom_override_checkout_fields( $fields ) { unset($fields['billing']['billing_company']); unset($fields['billing

我正在删除特定的Woocoomerce签出字段,因为提货订单不需要这些字段

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

function custom_override_checkout_fields( $fields ) {
    unset($fields['billing']['billing_company']);
    unset($fields['billing']['billing_address_1']);
    unset($fields['billing']['billing_address_2']);
    unset($fields['billing']['billing_city']);
    unset($fields['billing']['billing_postcode']);
    unset($fields['billing']['billing_country']);
    unset($fields['billing']['billing_state']);
    unset($fields['order']['order_comments']);
    return $fields;
}
这可以很好地删除字段,但不允许我签出。我收到以下错误:

我还尝试将必需的数组项更改为FALSE,但没有成功

$fields['billing']['billing_company']['required'] = false;
$fields['billing']['billing_address_1']['required'] = false;
$fields['billing']['billing_address_2']['required'] = false;
$fields['billing']['billing_city']['required'] = false;
$fields['billing']['billing_postcode']['required'] = false;
$fields['billing']['billing_country']['required'] = false;
$fields['billing']['billing_state']['required'] = false;

我正在使用店面主题以及Woocommerce 3.1.2,这在Woocommerce 3.1.2版本之后是一件令人讨厌的事情。要么降级到早期版本,要么允许这些细节在特定国家/地区通过。您可以使用css或JS隐藏表单输入,但在woocommerce设置中设置所需的国家/地区。

与“unset field”类似的问题,因此只需尝试将优先级设置为“100”或类似的设置 示例:添加_过滤器('woocommerce_checkout_fields','checkout_fields',100)

资料来源:

if(!function_exists('checkout_fields')){
    function checkout_fields($fields){
        unset($fields['billing']['billing_address_1']);
        unset($fields['billing']['billing_address_2']);
        unset($fields['billing']['billing_city']);
        unset($fields['billing']['billing_postcode']);
        unset($fields['billing']['billing_country']);
        unset($fields['billing']['billing_state']);
        return $fields;
    }
    add_filter('woocommerce_checkout_fields', 'checkout_fields', 100);
}

所以这是唯一一个需要有价值的国家?!我在代码中重构了账单地址1和账单地址2的一些其他细节,但国家给了我同样的头疼。这三个应该是问题所在。参考:和