最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

ACF Custom validation message not showing up

programmeradmin0浏览0评论

I have two date fields where I want to make sure the "end date" is always later than the "start date".

I added a validation function per ACF's documentation. It does fire, but the custom message does not display next to the field. It only says "validation failed" on the top.

add_action('acf/validate_save_post', 'my_acf_validate_save_post');

function my_acf_validate_save_post()
{

    $start = $_POST['acf']['field_5fb0e816ea4fc'];
    $start = new DateTime($start);

    $end = $_POST['acf']['field_5fb0e83aea4fd'];
    $end = new DateTime($end);

    // check custom $_POST data
        if ($start > $end) {
            acf_add_validation_error('event_series_end_date', 'End Date should be later than the Start Date');
        }
}

I have two date fields where I want to make sure the "end date" is always later than the "start date".

I added a validation function per ACF's documentation. It does fire, but the custom message does not display next to the field. It only says "validation failed" on the top.

add_action('acf/validate_save_post', 'my_acf_validate_save_post');

function my_acf_validate_save_post()
{

    $start = $_POST['acf']['field_5fb0e816ea4fc'];
    $start = new DateTime($start);

    $end = $_POST['acf']['field_5fb0e83aea4fd'];
    $end = new DateTime($end);

    // check custom $_POST data
        if ($start > $end) {
            acf_add_validation_error('event_series_end_date', 'End Date should be later than the Start Date');
        }
}
Share Improve this question asked Jan 25, 2021 at 3:04 geochantogeochanto 13115 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 1

Add this snippet and check according to your needed.

add_action('acf/validate_save_post', 'my_acf_validate_save_post');
    
    function my_acf_validate_save_post()
    {
    
        $start = $_POST['acf']['field_5fb0e816ea4fc'];
        //$start = new DateTime($start);
        $start = strtotime($start);
    
        $end = $_POST['acf']['field_5fb0e83aea4fd'];
        //$end = new DateTime($end);
        $end = strtotime($end);
    
        if( current_user_can('manage_options') ) {
    
            acf_reset_validation_errors();
        
        }
    
        // check custom $_POST data
        if ($start > $end ) {

            acf_add_validation_error($_POST['acf']['field-600e609de8ab8'], 'End Date should be later than the Start Date');

         }else if ($start == $end ) { 
        
            acf_add_validation_error($_POST['acf']['field-600e609de8ab8'], 'End Date should be equal to the Start Date');

    }
    }

Screenshot in Error :

发布评论

评论列表(0)

  1. 暂无评论