Я добавил пользовательские поля в свою регистрацию в WooCommerce, используя этот процесс.
Я сделал их доступными на странице редактирования моей учетной записи, используя следующие действия:
// added custom fields here
add_action( 'woocommerce_edit_account_form', 'my_woocommerce_edit_account_form' );
// saved user meta here
add_action( 'woocommerce_save_account_details', 'my_woocommerce_save_account_details' );
Между ними мне нужно проверить эти поля при редактировании. Я пытался использовать woocommerce_process_myaccount_field_
фильтр (как упомянуто здесь) но это не сработало. Код внутри него не срабатывает, когда я сохраняю изменения.
Любые идеи о том, как я могу проверить?
Я использую правильный фильтр?
Если да, то почему это не срабатывает?
Благодарю.
Вы можете попробовать использовать один из этих 2 хуков для проверки пользовательских полей.
add_action( 'user_profile_update_errors','wooc_validate_custom_field', 10, 1 );
// or
add_action( 'woocommerce_save_account_details_errors','wooc_validate_custom_field', 10, 1 );
// with something like:
function wooc_validate_custom_field( $args )
{
if ( isset( $_POST['custom_field'] ) ) // Your custom field
{
if(strlen($_POST['custom_field'])<4 ) // condition to be adapted
$args->add( 'error', __( 'Your error message', 'woocommerce' ),'');
}
}
Других решений пока нет …