2016-06-13 51 views
0

我嘗試使用woocommerce_checkout_fields過濾器鉤子同時禁用多個結帳字段的「必需」屬性,但沒有成功。WooCommerce:使用過濾器鉤子禁用結帳字段

插件工作不正常。這是我的代碼:

// Hook in 
add_filter('woocommerce_checkout_fields' , 'custom_override_checkout_fields'); 

// Our hooked in function - $fields is passed via the filter! 
function custom_override_checkout_fields($fields) { 
$fields['billing']['billing_address_1']['required'] = false; 
$fields['billing']['billing_address_2']['required'] = false; 

$fields['billing']['billing_postcode']['required'] = false; 
$fields['billing']['billing_city']['required'] = false; 
$fields['billing']['billing_phone']['required'] = false; 

    return $fields; 
} 

什麼問題?
我該如何做到這一點?

回答

8

您需要使用unset()功能用於此目的,你可以做到,這樣說:

add_filter('woocommerce_checkout_fields' , 'custom_override_checkout_fields'); 

function custom_override_checkout_fields($fields) { 
    unset($fields['billing']['billing_address_1']); 
    unset($fields['billing']['billing_address_2']); 
    unset($fields['billing']['billing_postcode']); 
    unset($fields['billing']['billing_city']); 
    unset($fields['billing']['billing_phone']); 
    return $fields; 
} 

您需要粘貼在位於您的活躍兒童主題或function.php文件驗證碼主題。


你已經改變了你的問題與更新:這是我的新的答案

使可選地址字段(關於你的更新):

你有爲此目的使用不同的過濾器鉤子。有2個不同的濾波器鉤:

1)進行計費字段:

add_filter('woocommerce_billing_fields', 'wc_optional_billing_fields', 10, 1); 
function wc_optional_billing_fields($address_fields) { 
    $address_fields['billing_address_1']['required'] = false; 
    $address_fields['billing_address_2']['required'] = false; 
    $address_fields['billing_postcode']['required'] = false; 
    $address_fields['billing_city']['required'] = false; 
    $address_fields['billing_phone']['required'] = false; 
    return $address_fields; 
} 

2)對於航運字段:

add_filter('woocommerce_shipping_fields', 'wc_optional_shipping_fields', 10, 1); 
function wc_optional_shipping_fields($address_fields) { 
    $address_fields['shipping_phone']['required'] = false; 
    return $address_fields; 
} 

爲了使地址字段要求:

您可以使用上面相同的掛鉤和功能,將每個字段false更改爲true


您需要粘貼在位於您的活躍兒童主題或主題function.php文件的代碼。

參考:Customizing checkout fields using hooks

+0

你誤解了我的問題。我需要製作幾個「不需要」的字段,而不是完全禁用它們。這實際上工作正常。 – Bernhard

相關問題