web-dev-qa-db-fra.com

Erreur dans le champ Valider avec le plugin ACF dans Wordpress

J'ai le problème suivant lorsque je valide un champ avec le plugin Advanced Custom Fields dans wordpress. Ce qui se passe, c'est que le champ est validé correctement mais l'erreur apparaît sur une nouvelle page au lieu de sortir sur la même page au-dessus du champ sur lequel je valide. Le code à valider est le suivant:

function validate_fields_contact()
{
    add_filter('acf/validate_value/name=phone_contact', 'validate_phone_number', 10, 4);
}

function validate_phone_number($valid, $value, $field, $input)
{
    if (!$valid) {
        return $valid;
    }

    if(!preg_match("/^\+XX(\s|\d){8,12}$/", $value)) {
        return __('Incorrect Format.');
    }

    return true;
}

Cela devrait être comme ça:

 enter image description here 

C'est ce qui se passe

 enter image description here 

2

J'ai eu le même problème. Et j'ai perdu assez de temps pour la réponse.

Au début, soyez sûr que:

La demande ajax n'échoue pas et se produit. Alors, vérifiez:

  1. Acf_form_head () est-il avant get_header () et est-il exécuté avant que du code HTML ne soit généré?
  2. Votre thème contient-il un appel à wp_head ()?
  3. Votre thème contient-il un appel à wp_foot ()?
  4. Est-ce que vous retardez le chargement de JavaScript ou que vous modifiez autrement la façon dont JavaScript est chargé sur la page?

(Regardez cette rubrique de support ACF aussi. Si vous utilisez acf_form () pour créer un nouvel utilisateur, consultez ce sujet ).

Mais dans mon cas, la racine était is_admin () dans cette ligne dans le crochet 'acf/validate_value':

if ( ! $valid || is_admin() ) { return $valid; }

Parce que is_admin () renvoie 'true' par AJAX request . Par conséquent, la fonction de validation n'a pas fonctionné.

J'espère que ce sera utile pour quelqu'un.

0
Konstantin Petlya