Вы используете ловушку действия.Он не может обновить или удалить поле.
do_action( 'woocommerce_created_customer', $customer_id, $new_customer_data, $password_generated );
Если вы хотите внести изменения в поле пользователя.
woocommerce_new_customer_data это хук фильтра.
Тогда попробуйте этот хук:
$new_customer_data = apply_filters( 'woocommerce_new_customer_data', array(
'user_login' => $username,
'user_pass' => $password,
'user_email' => $email,
'role' => 'customer',
) );
Подробнее об этом вы узнаете здесь.http://hookr.io/plugins/woocommerce/3.0.6/files/includes-wc-user-functions/
Обновлено: Для полей проверки WooCommerc
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
$cart_items = WC()->cart->get_cart();
// Categories Array
$categories = array('age-defying-skincare');
foreach( $cart_items as $cart_item ){
if( has_term( $categories, 'product_cat', $cart_item['product_id'] ) ) {
unset($fields['account']['account_password']);
unset($fields['account']['account_password-2']);
unset($fields['account']['account_username']);
}
}
return $fields;
}
Попробуйте приведенный выше код.