删除woocommerce结帐页面中的密码字段

时间:2017-01-31 13:25:30

标签: php wordpress woocommerce checkout hook-woocommerce

我正在尝试删除结帐页面中的密码字段。

以下是我尝试的内容(代码位于我的functions.php主题文件中)

// Hook in
add_filter( 'woocommerce_default_address_fields' , 'custom_override_default_address_fields' );

// Our hooked in function - $address_fields is passed via the filter!
function custom_override_default_address_fields( $address_fields ) {
     $checkout_fields['account']['required'] = false;

     return $checkout_fields;
}

但它不起作用。

在woocommerce结帐页面删除密码字段的钩子是什么?

感谢。

1 个答案:

答案 0 :(得分:0)

  

摘要 woocommerce_default_address_fields 仅用于默认地址字段,而不用于帐户字段。

要使密码字段可选,您应该使用 woocommerce_checkout_fields 挂钩,这样:

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
     // There is 2 password fields
     fields['account']['account_password']['required']  = false;
     fields['account']['account_password-2']['required'] = false;

     return $fields;
}

要删除这些密码字段,您需要以这种方式使用 unset() PHP函数:

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
     unset($fields['account']['account_password']);
     unset($fields['account']['account_password-2']);

     return $fields;
}
  

但我不确定这是否真的有可能,因为当您启用了在结帐页面注册的选项时,它在WooCommerce结帐流程中是强制性的......

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

官方参考: Customizing checkout fields using actions and filters