我已成功使用woocommerce_edit_account_form和woocommerce_save_account_details连接到“我的帐户”页面,这似乎工作正常。
唯一的问题是我有一个手机号码字段需要验证到10位数(如果选中了移动通知复选框),我似乎无法确切知道如何以及在何处添加代码
Wordpress对我来说很新,但我有PHP编码经验。我做了几次谷歌搜索,看起来像woocommerce_save_account_details_errors是我需要的钩子,但我找不到任何具有正确语法的特定样本才能使它工作。
我试了这个没有运气(保存页面没有错误信息):
function my_woocommerce_save_account_details_errors( $user_id ) {
if ( isset( $_POST['mobile_number'] ) )
{
if(strlen($_POST['mobile_number'])<6 )
$args->add( 'error', __( 'Your mobile number must be exactly 10 digits long (5551112222)', 'woocommerce' ),'');
}
}
任何帮助将不胜感激, -ben
答案 0 :(得分:1)
尝试使用以下代码调整您的代码:
add_action( 'woocommerce_save_account_details_errors','wdm_validate_custom_field', 10,2 );
function wdm_validate_custom_field(&$args, &$user)
{
checkFieldEmpty('your_field', 'Label_of_the_Field');
}
function checkFieldEmpty($field_name, $field_label){
if ( empty( $_POST[$field_name] ) )
{
wc_add_notice( '<strong>' . esc_html( $field_label ) . '</strong> ' . __( 'is a required field.', 'woocommerce' ), 'error' );
}
}