需要在WooCommerce 3.0的签出中只读取输入,但仍有原始内容传递给订单。在这种情况下,订单需要传递给FishBowl。
我在这里尝试过很多方法。这是最近的..。
add_action('woocommerce_form_field_args', 'disable_company_input', 10, 3);
function disable_company_input($args, $key, $value)
{
if ($key == 'billing_company') {
$args['custom_attributes'] = [
'disabled' => 'disabled',
];
}
return $args;
}
add_action('woocommerce_after_order_notes', 'billing_company_hidden_field');
function billing_company_hidden_field($checkout)
{
echo '<input type="hidden" class="input-hidden" name="billing_company">';
}我试图禁用用户更改billing_company的能力,这段代码确实完成了这一功能,但仍然将其传递到最后的顺序,而我似乎无法做到这一点。
如果你能帮忙的话,非常感谢你。
发布于 2018-12-18 21:09:15
尝试以下选项(因为文本字段需要是readonly__,而不是disabled__)
add_filter( 'woocommerce_checkout_fields' , 'custom_checkout_fields' );
function custom_checkout_fields( $fields ) {
$fields['billing']['billing_company']['custom_attributes']['readonly'] = 'readonly';
return $fields;
}代码在您的活动子主题(或活动主题)的function.php文件中。测试和工作。
如果存在某些数据,它将出现在此字段中,但客户将无法添加或更改输入,因为它将是“只读”。
加法-检查计费公司是否没有价值,并隐藏/删除该字段:
add_filter( 'check_billing_company_checkout_field' , 'check_billing_company_checkout_field' );
function billing_company_checkout_field( $fields ) {
$billing_company = WC()->customer->get_billing_company();
if( empty( $billing_company ) ) { // Remove field
unset($fields['billing']['billing_company']);
} else { // Make readonly
$fields['billing']['billing_company']['custom_attributes']['readonly'] = 'readonly';
}
return $fields;
}代码位于活动子主题(或活动主题)的function.php文件中。
https://stackoverflow.com/questions/53840910
复制相似问题