0

我需要帮助解决问题。我正在使用 Ultimate Member 插件进行出生日期验证。我想检查用户从数据选择中输入的年份,并检查他们是否年满 13 岁。我试过用钩子解决它,但它不允许在日期选择器上进行自定义验证。这是我的代码:

    add_action('um_submit_form_errors_hook_student_birthdate','um_custom_validate_birthdate', 999, 1);

    function um_custom_validate_birthdate( $args ) {

       $birthDate = $args['birth_date'];
      //explode the date to get month, day and year
      $birthDate = explode("/", $birthDate);
      //get age from date or birthdate
      $age = (date("md", date("U", mktime(0, 0, 0, $birthDate[1], $birthDate[2], $birthDate[0]))) > date("md")
    ? ((date("Y") - $birthDate[0]) - 1)
    : (date("Y") - $birthDate[0]));

    if ( isset( $args['birth_date'] ) && $age < 13 ) {
        UM()->form()->add_error( 'birth_date', "You must be atleast 13 years old to create an account." );
    }
}
4

1 回答 1

0

代码是正确的。只是我看到了这个与我的不同:

add_action('um_submit_form_errors_hook_','um_custom_validate_birthdate', 999, 1);而不是你的add_action('um_submit_form_errors_hook_student_birthdate','um_custom_validate_birthdate', 999, 1);

否则就像我的 18 岁。也许根本不像你期望的那样工作?

使用此代码,按下注册按钮后,如果年龄小于 13 岁,出生日期字段将出现您输入“对不起,您必须是 13 岁”或其他任何信息的消息...

如果那是您需要的,它应该可以工作。如果不起作用,请检查您的插件版本,如果您仍未将其更新到最新版本,请尝试执行此操作)。如果您仍然有问题,我建议您也关注他们的强大支持论坛。

于 2021-11-29T21:06:04.783 回答