Woocommerce: проверка пользовательских полей на странице редактирования учетной записи

Мне нужно проверить и сохранить мои пользовательские поля на странице «Редактировать мою учетную запись». Я нашел шаблон этой страницы в woocommerce/myaccount/form-edit-account.php . Мне удалось добавить свои пользовательские поля в этот файл шаблона. Теперь мне нужно проверить их, и если все в порядке – сохраните данные пользователя.

Какой крючок мне нужно использовать в этой ситуации? Я могу редактировать class-wc-form-handler.php но я не хочу этого делать.

благодаря

Я обнаружил крючок действия, который можно использовать для проверки пользовательских полей или существующих полей на странице «Редактировать учетную запись».
Добавьте следующий код в functions.php.

 add_action('user_profile_update_errors','wdm_validate_custom_field',10,1); function wdm_validate_custom_field($args) { if ( isset( $_POST['custom_field'] ) ) { if(strlen($_POST['custom_field'])<6 ) $args->add( 'error', __( 'Your error message', 'woocommerce' ),''); } } 

проверка пользовательских полей на странице редактирования учетной записи может быть выполнена с использованием этого действия, woocommerce_save_account_details_errors

Попробуй это.

 add_filter( 'woocommerce_process_myaccount_field_{your_custom_field_name}' , 'validate_edit_address' ); function validate_edit_address() { $variable = $_POST['your_custom_field_name']; if ( preg_match("/[ก-๙a-zA-Z]+$/", $variable ) ){ wc_add_notice( __( '<strong>Error</strong>' ), 'error' ); } return $variable ; } 

Пример :

 add_filter( 'woocommerce_process_myaccount_field_billing_house_number' , 'validate_edit_address' ); function validate_edit_address() { $variable = $_POST['billing_house_number']; if ( preg_match("/[ก-๙a-zA-Z]+$/", $variable ) ){ wc_add_notice( __( '<strong>Error</strong>' ), 'error' ); } return $variable ; }