Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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_Field_Checkout - Fatal编程技术网

Php 取消设置一些电子商务签出计费字段和一页签出插件

Php 取消设置一些电子商务签出计费字段和一页签出插件,php,wordpress,woocommerce,field,checkout,Php,Wordpress,Woocommerce,Field,Checkout,我正在使用WooCommerce订阅和一页签出插件 我可以取消设置帐单名和姓氏(甚至将“required”属性设置为false),因此这两个字段将从我的单页签出中依次删除 但是,当我填写所有其他字段并下订单时,它会显示一个验证错误通知:“需要支付名字和姓氏”,我真的不知道如何解决这个问题 也许它是从一些函数中重新设置的?我如何解决这个问题?您是否尝试过通过child function.php手动删除它,如下所示 add_filter( 'woocommerce_checkout_fields'

我正在使用WooCommerce订阅和一页签出插件

我可以取消设置帐单名和姓氏(甚至将“required”属性设置为
false
),因此这两个字段将从我的单页签出中依次删除

但是,当我填写所有其他字段并下订单时,它会显示一个验证错误通知:“需要支付名字和姓氏”,我真的不知道如何解决这个问题


也许它是从一些函数中重新设置的?我如何解决这个问题?

您是否尝试过通过child function.php手动删除它,如下所示

add_filter( 'woocommerce_checkout_fields' , ' custom_remove_checkout_fields ' );

function custom_remove_checkout_fields( $fields ) {
unset($fields['billing']['billing_first_name']); 
unset($fields['billing']['billing_last_name']); 
return $fields; 

}

要在结帐页面中删除帐单名和姓氏而不出现任何问题,请尝试使用以下选项:

// 1. Make required fields optional
add_filter( 'woocommerce_default_address_fields', 'customize_default_address_checkout_fields', 1000 );
function customize_default_address_checkout_fields( $fields ) {
    if( is_checkout() ) {
        $fields['first_name']['required'] = $fields['last_name']['required'] = false;
    }
    return $fields;
}

// 2. Remove unneeded billing fields
add_filter( 'woocommerce_billing_fields', 'customize_billing_checkout_fields', 1000 );
function customize_billing_checkout_fields( $fields ) {
    if( is_checkout() ) {
        unset($fields['billing_first_name'], $fields['billing_last_name']);
    }
    return $fields;
}
代码放在活动子主题(或活动主题)的functions.php文件中


它也应该与一页签出插件一起工作。

我已经解决了这个问题。 根本原因是因为一个插件总是需要名字和姓氏,所以我使用下面的提示来解决这个问题:

我将此代码包含在主题的function.php中:

add_filter('woocommerce_billing_fields', 'my_woocommerce_billing_fields');
function my_woocommerce_billing_fields($fields) {
$fields['billing_first_name']['default'] = 'newSubscriber';
$fields['billing_first_name']['custom_attributes']['readonly'] = TRUE;
$fields['billing_last_name']['default'] = 'newSubscriber';
$fields['billing_last_name']['custom_attributes']['readonly'] = TRUE;
return $fields;
}
因此,现在您的名字和姓氏始终设置为“newSubscriber”,它将通过验证,现在您可以使用css将其隐藏起来,以防发布:

p#billing_first_name_field, p#billing_last_name_field {
display: none;
}

将这些css粘贴到外观->主题->你的主题->其他css中并保存

因此,现在一切都将发挥魅力。
希望它能帮助解决这个问题的人。

是的,我试过了,但仍然不起作用。我的url在这里:它是使用woocommerce的一页签出checkout@JackTrinh“使用woocommerce单页签出进行单页签出”???…我不知道。所以问题似乎与一页签出插件有关。它同时使用子说明和一页签出插件。@JackTrinh WooCommerce订阅插件,与您的问题无关(因为我在测试服务器上也启用了它)。此插件是一页签出插件。请检查此插件是否可以帮助您: