2016-06-01 3 views
1

Я добавил пользовательские поля в мою учетную запись WooCommerce, используя this process. Я сделал их доступными на странице редактирования Мой аккаунт, используя следующие действия: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_ (as mentioned here), но это не сработало. Когда я сохраняю изменения, код внутри него не запускается.

Любые идеи о том, как я могу проверить?
Я использую правильный фильтр?
Если да, то почему он не срабатывает?

Спасибо.

+0

Какой из них работал на вас? спасибо – LoicTheAztec

+1

Это: 'woocommerce_save_account_details_errors'. Интересно, почему этого не было в ссылке WookCommerce Hooks в Интернете. – sgr12

+0

Да, это в ** hookr.io **: [woocommerce save account details errors hook] (http://hookr.io/actions/ woocommerce_save_account_details_errors /) и https://github.com/woothemes/woocommerce/blob/master/includes/class-wc-form-handler.php#L223 – LoicTheAztec

ответ

4

Вы можете попытаться использовать один из этих двух крючков для проверки пользовательских полей.

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'),''); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^