{"id":5390640,"date":"2014-10-15T09:16:19","date_gmt":"2014-10-15T09:16:19","guid":{"rendered":"https:\/\/wordpress.org\/support\/topic\/contribution-3\/"},"modified":"2016-08-22T03:28:28","modified_gmt":"2016-08-22T03:28:28","slug":"contribution-3","status":"closed","type":"topic","link":"https:\/\/wordpress.org\/support\/topic\/contribution-3\/","title":{"rendered":"Contribution :)"},"content":{"rendered":"<p>Bonjour,<br \/>\nMerci pour ce plugin. Je n&#8217;ai pas vu de bugs et il est facile \u00e0 utiliser.<br \/>\nToutefois pour un projet personnel, j&#8217;ai modifi\u00e9 deux fichiers pour :<br \/>\n&#8211; S\u00e9curiser un peu les acc\u00e8s au $_POST<br \/>\n&#8211; R\u00e9cup\u00e9rer les valeurs des champs en cas de non validation afin de ne pas avoir \u00e0 re-remplir le formulaire<br \/>\n&#8211; Ajouter des messages d&#8217;erreurs pour chaque champs et un style .wrong ou .ok sur le champs en question<br \/>\n&#8211; Ajouter un type de champs code postal (pas tout \u00e0 fait fini)&#8230;<br \/>\n&#8211; Limiter le contenu des champs \u00e0 32 caract\u00e8res<br \/>\n&#8211; Ajouter email, nom et pr\u00e9nom dans des colonnes sp\u00e9cifiques de la BDD afin de pouvoir faire des recherches (la s\u00e9rialisation ne permet pas trop de trier), la table a \u00e9t\u00e9 modifi\u00e9e \u00e0 la main&#8230;.<br \/>\nJe n&#8217;ai pas modifier la partie admin car c&#8217;est un projet unique&#8230;.<br \/>\nbref si cela int\u00e9resse voici les deux fichiers modifi\u00e9s :<\/p>\n<p>++<br \/>\neKo<\/p>\n<p>display_yawpp.php<\/p>\n<pre><code>&lt;?php\n\/\/ligne de securit\u00e9\ndefined(&#039;ABSPATH&#039;) or die(&quot;No script kiddies please!&quot;);\n\ninclude(plugin_dir_path( __FILE__ ). &#039;\/display_functions.php&#039;);\n\n\/\/Affichage du formulaire de la p\u00e9tition\nfunction yawpp_display_form($id){\n\n\tif(isset($_POST[&#039;submit_yawpp&#039;])){\n\n\t\tadd_signs();\n\n\t}\n\n\tglobal $wpdb;\n\tglobal $yawpp_error;\n\n\t\/\/variable de retour\n\t$html = &#039;&#039;;\n\n\t\/\/On r\u00e9cup\u00e8re les champs de la p\u00e9tition\n\t$fields = $wpdb-&gt;get_results($wpdb-&gt;prepare(&quot;SELECT * FROM &quot;.$wpdb-&gt;prefix.&quot;yawpp_fields WHERE id_petition = %d  ORDER BY id ASC&quot;, $id), OBJECT);\n\t$html .= $yawpp_error;\n\t$html .= &#039;&lt;div class=&quot;form_yawpp&quot;&gt;&lt;fieldset&gt;&lt;form name=&quot;form_yawpp&quot; method=&quot;post&quot;&gt;&#039;;\n\n\tforeach ($fields as $field){\n\n\t\t\/\/recuperer les variables post securis\u00e9es\n\t\tglobal ${&#039;yawpp_f_field&#039;.$field-&gt;id};\n\t\tglobal ${&#039;yawpp_f_needed&#039;.$field-&gt;id};\n\t\tglobal ${&#039;yawpp_f_wrongmail&#039;.$field-&gt;id};\n\t\tglobal ${&#039;yawpp_f_unique&#039;.$field-&gt;id};\n\t\tglobal ${&#039;yawpp_f_zipcode&#039;.$field-&gt;id};\n\t\tglobal $yawpp_post;\n\n\t\t\/\/test des champs ok pour l&#039;affichage\n\t\tif(${&#039;yawpp_f_needed&#039;.$field-&gt;id}==true\n\t\t\t|| ${&#039;yawpp_f_wrongmail&#039;.$field-&gt;id}==true\n\t\t\t|| ${&#039;yawpp_f_unique&#039;.$field-&gt;id}==true\n\t\t\t|| ${&#039;yawpp_f_zipcode&#039;.$field-&gt;id}==true\n\t\t\t)\n\t\t{\n\t\t\t$wrongClass=&quot;wrong&quot;;\n\t\t}\n\t\telse if ($yawpp_post)\n\t\t{\n\t\t\t$wrongClass=&quot;ok&quot;;\n\t\t}\n\n\t\t$html .= &#039;&lt;div class=&quot;field_yawpp &#039;.$wrongClass.&#039;&quot;&gt;&lt;label for=&quot;field&#039;.$field-&gt;id.&#039;&quot;&gt;&#039;.$field-&gt;text;\n\t\tif($field-&gt;needed == 0){\n\t\t\t$html .= &#039; : &lt;\/label&gt;&#039;;\n\t\t}else{\n\t\t\t$html .= &#039;* : &lt;\/label&gt;&#039;;\n\t\t}\n\n\t\tswitch($field-&gt;type){\n\t\t\tcase &#039;text&#039;:\n\t\t\t\t$html .=&#039;&lt;input type=&quot;text&quot; name=&quot;field&#039;.$field-&gt;id.&#039;&quot; id=&quot;field&#039;.$field-&gt;id.&#039;&quot; value=&quot;&#039;.${&#039;yawpp_f_field&#039;.$field-&gt;id}.&#039;&quot;\/&gt;&#039;;\n\t\t\t\tbreak;\n\n\t\t\tcase &#039;email&#039;:\n\t\t\t\t$html .=&#039;&lt;input type=&quot;email&quot; name=&quot;field&#039;.$field-&gt;id.&#039;&quot; id=&quot;field&#039;.$field-&gt;id.&#039;&quot; value=&quot;&#039;.${&#039;yawpp_f_field&#039;.$field-&gt;id}.&#039;&quot;\/&gt;&#039;;\n\t\t\t\tbreak;\n\n\t\t\tcase &#039;comment&#039;:\n\t\t\t\t$html .=&#039;&lt;textarea name=&quot;field&#039;.$field-&gt;id.&#039;&quot; id=&quot;field&#039;.$field-&gt;id.&#039;&quot;&gt;&#039;.${&#039;yawpp_f_field&#039;.$field-&gt;id}.&#039;&lt;\/textarea&gt;&#039;;\n\t\t\t\tbreak;\n\t\t\tcase &#039;checkbox&#039;:\n\t\t\t\t\/\/verifier si la check box \u00e9tait checked\n\t\t\t\tif(${&#039;yawpp_f_field&#039;.$field-&gt;id}==&quot;1&quot;)\n\t\t\t\t{\n\t\t\t\t\t$checked=&quot;checked&quot;;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t$checked=&quot;&quot;;\n\t\t\t\t}\n\t\t\t\t$html .= &#039;&lt;input type=&quot;checkbox&quot; name=&quot;field&#039;.$field-&gt;id.&#039;&quot; id=&quot;field&#039;.$field-&gt;id.&#039;&quot; value=&quot;1&quot; &#039;.$checked.&#039;\/&gt;&#039;;\n\t\t}\n\t\t$html .=&#039;&lt;br \/&gt;&lt;\/div&gt;&#039;;\n\n\t}\n\n\t$html .= &#039;&lt;p&gt;* &#039;.__(&quot;Champs obligatoires&quot;, &#039;yawpp&#039;).&#039;&lt;\/p&gt;&lt;input type=&quot;hidden&quot; name=&quot;id&quot; value=&quot;&#039;.$id.&#039;&quot; \/&gt;&lt;input type=&quot;submit&quot; value=&quot;Valider&quot; name=&quot;submit_yawpp&quot; \/&gt;&lt;\/fieldset&gt;&lt;\/form&gt;&lt;\/div&gt;&#039;;\n\n\treturn $html;\t\t\n\n}\n\n\/\/Affichage de la liste des signataires\nfunction yawpp_display_signs($id){\n\nglobal $wpdb;\n\n$html = null;\n\n\/\/On r\u00e9cup\u00e8re la liste des signataires pour la p\u00e9tition\n\n$html .= &#039;&lt;div class=&quot;signs_yawpp&quot;&gt;&#039;;\n\n$p = $wpdb-&gt;get_results($wpdb-&gt;prepare(&quot;SELECT * FROM &quot;.$wpdb-&gt;prefix.&quot;yawpp_petitions WHERE id = %d&quot;, $id), OBJECT);\n\nif(empty($p[0]-&gt;max)){\n\t$result = $wpdb-&gt;get_results($wpdb-&gt;prepare(&quot;SELECT * FROM &quot;.$wpdb-&gt;prefix.&quot;yawpp_signs WHERE id_petition = %d ORDER BY id DESC&quot;, $id), OBJECT);\n}\nelse{\n\t$result = $wpdb-&gt;get_results($wpdb-&gt;prepare(&quot;SELECT * FROM &quot;.$wpdb-&gt;prefix.&quot;yawpp_signs WHERE id_petition = %d ORDER BY id DESC LIMIT 0, %d&quot;, $id, $p[0]-&gt;max), OBJECT);\n}\n\n    if($result) {\n\n    \t\/\/S&#039;il y a des signataires, on affiche les champs dans le tableau\n        $html .= &quot;&lt;table class=&#039;signs_table&#039;&gt;\n        &lt;thead&gt;\n        &lt;tr&gt;&quot;;\n\n        \/\/Affichage des ent\u00eates du tableau\n        $resultfields = $wpdb-&gt;get_results($wpdb-&gt;prepare(&quot;SELECT * FROM &quot;.$wpdb-&gt;prefix.&quot;yawpp_fields WHERE id_petition = %d&quot;, $id), OBJECT);\n\n        foreach($resultfields as $rf){\n        \tif ($rf-&gt;private != 1) $html .= &quot;&lt;th&gt;&quot;.$rf-&gt;text.&quot;&lt;\/th&gt;&quot;;\n        }\n\n        $html .=  &quot;\n        \t&lt;\/tr&gt;\n       \t\t&lt;\/thead&gt;\n        \t&lt;tfoot&gt;\n       \t \t&lt;tr&gt;&quot;;\n\n        foreach($resultfields as $rf){\n        \tif ($rf-&gt;private != 1) $html .=  &quot;&lt;th&gt;&quot;.$rf-&gt;text.&quot;&lt;\/th&gt;&quot;;\n        }\n\n        $html .=  &quot;\n        &lt;\/tr&gt;\n        &lt;\/tfoot&gt;&quot;;\n\n        foreach($result as $r)\n        {\n                $html .=  &quot;&lt;tbody&gt;&lt;tr&gt;&quot;;\n\n                \/\/On d\u00e9s\u00e9rialise les champs\n                $fieldsvalue = unserialize($r-&gt;fieldstable);\n                \/\/On boucle sur les champs\n                foreach($resultfields as $rf){\n\t                if ($rf-&gt;private != 1)  $html .=  &quot;&lt;td&gt;&quot;.$fieldsvalue[$rf-&gt;id].&quot;&lt;\/td&gt;&quot;;\n\t            }\n                $html .=  &#039;&lt;\/td&gt;&#039;;\n               $html .=  &quot;&lt;td&gt;&lt;\/td&gt;&lt;\/tr&gt;&lt;\/tbody&gt;&quot;;\n        }\n        $html .=  &quot;&lt;\/table&gt;&quot;;\n\n\t}else{\n        $html .=  &quot;&lt;h3&gt;&quot;.__(&quot;Aucun signataire pour cette p\u00e9tition.&quot;, &#039;yawpp&#039;).&quot;&lt;\/h3&gt;&quot;;\n    }\n\n    $html .=  &#039;&lt;\/div&gt;&#039;;\n\n\treturn $html    ;\n\n}\n\n\/\/Affichage du nombre de signataire\n\nfunction yawpp_display_num_signs($id){\n\nglobal $wpdb;\n\t$wpdb-&gt;get_results($wpdb-&gt;prepare(&quot;SELECT * FROM &quot;.$wpdb-&gt;prefix.&quot;yawpp_signs WHERE id_petition = %d ORDER BY id DESC&quot;, $id), OBJECT);\n\n\treturn &#039;&lt;span class=&quot;yawppnumsign&quot;&gt;&#039;.$wpdb-&gt;num_rows.&#039;&lt;\/span&gt;&#039;;\n}\n?&gt;<\/code><\/pre>\n<p>et display_fonctions.php<\/p>\n<pre><code>&lt;?php\n\n\/\/ligne de securit\u00e9\ndefined(&#039;ABSPATH&#039;) or die(&quot;No script kiddies please!&quot;);\n\n\/\/\/verification du XSS en GET et en POST\nif (isset($_POST))\n{\n\tforeach ($_POST as $key=&gt;$secvalue)\n\t{\n\t\t\/\/echo &quot;debug0: key=&quot;.$key.&quot;,value=&quot;.$secvalue.&quot;,&quot;;\n\t\tif (is_array($secvalue))\n\t\t {\n\t\t \t\t$secvalue=implode(&quot;,&quot;,$secvalue);\n\t\t }\n\n\t\tif (preg_match(&quot;\/&lt;[^&gt;]*script*\\&quot;?[^&gt;]*&gt;\/i&quot;, $secvalue))\n\t\t{\n\t\t\tif ($key!=&quot;form_description&quot; &amp;&amp; $key!=&quot;form_content&quot;) die (&quot;You can&#039;t do this...&quot;);\n\t\t\t\/\/ Traitement de la description saisie qui peut contenir du code\n\t\t}\n\t}\n}\nif (isset($_GET))\n{\n\tforeach ($_GET as $key=&gt;$secvalue)\n\t{\n\t if (is_array($secvalue)) $secvalue=implode(&quot;,&quot;,$secvalue);\n\t\tif (preg_match(&quot;\/&lt;[^&gt;]*script*\\&quot;?[^&gt;]*&gt;\/i&quot;, $secvalue))\n\t\t{\n\t\tif ($key!=&quot;form_description&quot;) die (&quot;You can&#039;t do this...&quot;);\n\t\t\/\/ Traitement de la description saisie qui peut contenir du code\n\t\t}\n\t}\n}\n\/\/ recuperation des variables de session\nif (isset($_SESSION)) foreach($_SESSION as $k=&gt;$v) $$k=$v;\n\/\/limite de taille des champs\n$nb_caractere_limit=32;\n\/\/ recuperation des parametres envoyes par formulaire (POST) ou URL (GET)\nif (isset($_POST)) foreach($_POST as $k=&gt;$v) ${&quot;yawpp_f_&quot;.$k}=substr($v, 0, $nb_caractere_limit);\nif (isset($_GET)) foreach($_GET as $k=&gt;$v) ${&quot;yawpp_f_&quot;.$k}=substr($v, 0, $nb_caractere_limit);\n\n\/*-------------------------------------\nV\u00e9rification de l&#039;unicit\u00e9 d&#039;un champs\n--------------------------------------*\/\n\n\/\/Affichage de la liste des signataires\nfunction check_unicity($id, $field, $id_petition)\n{\n\n\tglobal $wpdb;\n\n\t\/\/On r\u00e9cup\u00e8re la liste des signataires pour la p\u00e9tition\n\n\t$result = $wpdb-&gt;get_results($wpdb-&gt;prepare(&quot;SELECT * FROM &quot;.$wpdb-&gt;prefix.&quot;yawpp_signs WHERE id_petition = %d&quot;, $id_petition), OBJECT);\n\n    if($result)\n\t{\n\n\t        \/\/On r\u00e9cup\u00e8re les champs\n\t        $resultfields = $wpdb-&gt;get_results($wpdb-&gt;prepare(&quot;SELECT * FROM &quot;.$wpdb-&gt;prefix.&quot;yawpp_fields WHERE id_petition = %d&quot;, $id_petition), OBJECT);\n\n\t\t  foreach($result as $r)\n\t\t  {\n                \/\/On d\u00e9s\u00e9rialise les champs\n                $fieldsvalue = unserialize($r-&gt;fieldstable);\n               \tif ($fieldsvalue[$id] == $field) {\n               \t\treturn false;\n               \t}\n               \telse{\n\n               \t}\n\n        \t}\n\t\treturn true;\n\n\t}\n\telse\n\t{\n\t\treturn true;\n\n    \t}\n\n}\n\n\/*----------------------------------------\nAjout d&#039;une signature \u00e0 la base de donn\u00e9e\n-----------------------------------------*\/\n\nfunction add_signs()\n{\n\n\tglobal $wpdb;\n\tglobal $yawpp_f_id;\n\t\/\/On v\u00e9rifie que tous les champs obigatoires ont \u00e9t\u00e9 remplis\n\n\t\/\/On r\u00e9cup\u00e8re l&#039;ID de la p\u00e9tition\n\t$id_petition = $yawpp_f_id;\n\n\t\/\/ On r\u00e9cup\u00e8re les champs dans la base de donn\u00e9e.\n\t$fields = $wpdb-&gt;get_results($wpdb-&gt;prepare(&quot;SELECT * FROM &quot;.$wpdb-&gt;prefix.&quot;yawpp_fields WHERE id_petition = %d&quot;, $id_petition), OBJECT);\n\n\t\/\/On boucle sur les champs\n\t$test = 0;\n\t$wrongmail = 0;\n\t$unique = 0;\n\t$zipcode=0;\n\tforeach($fields as $field)\n\t{\n\t\t\/\/flag de passage en post\n\t\tglobal $yawpp_post;\n\t\t$yawpp_post=true;\n\n\t\tglobal ${&#039;yawpp_f_field&#039;.$field-&gt;id};\n\t\tglobal ${&#039;yawpp_f_needed&#039;.$field-&gt;id};\n\t\tglobal ${&#039;yawpp_f_wrongmail&#039;.$field-&gt;id};\n\t\tglobal ${&#039;yawpp_f_unique&#039;.$field-&gt;id};\n\t\tglobal ${&#039;yawpp_f_zipcode&#039;.$field-&gt;id};\n\t\t\/\/echo &#039;yawpp_f_field&#039;.$field-&gt;id.&quot; :&quot;;\n\t\t\/\/echo &#039; -&#039;.$field-&gt;text.&#039;- &#039;;\n\t\t\/\/echo ${&#039;yawpp_f_field&#039;.$field-&gt;id};\n\t\t\/\/echo &quot;&lt;br \/&gt;&quot;;\n\n\t\t\/\/champs obligatoire\n\t\tif(($field-&gt;needed == 1) &amp;&amp; (empty(${&#039;yawpp_f_field&#039;.$field-&gt;id})))\n\t\t{\n\n\t\t\t$test++;\n\t\t\t${&#039;yawpp_f_needed&#039;.$field-&gt;id}=true;\n\n\t\t}\n\n\t\t\/\/champs email\n\t\tif(($field-&gt;type == &quot;email&quot;) &amp;&amp;((!filter_var(${&#039;yawpp_f_field&#039;.$field-&gt;id}, FILTER_VALIDATE_EMAIL) || ${&#039;yawpp_f_field&#039;.$field-&gt;id}==&quot;&quot; )))\n\t\t{\n\n\t\t\t$wrongmail++;\n\t\t\t${&#039;yawpp_f_wrongmail&#039;.$field-&gt;id}=true;\t\n\n\t\t}\n\n\t\t\/\/champs unique\n\t\tif(($field-&gt;uniquefield == 1) &amp;&amp; (!check_unicity($field-&gt;id, ${&#039;yawpp_f_field&#039;.$field-&gt;id}, $id_petition)))\n\t\t{\n\n\t\t\t$unique++;\n\t\t\t${&#039;yawpp_f_unique&#039;.$field-&gt;id}=true;\t\t\t\n\n\t\t}\n\t\t\/\/champs code postal\n\t\tif(($field-&gt;type == &quot;zipcode&quot;) &amp;&amp; (!filter_var(${&#039;yawpp_f_field&#039;.$field-&gt;id}, FILTER_VALIDATE_INT)) &amp;&amp; (strlen (${&#039;yawpp_f_field&#039;.$field-&gt;id}))==5)\n\t\t{\n\n\t\t\t$zipcode++;\n\t\t\t${&#039;yawpp_f_zipcode&#039;.$field-&gt;id}=true;\t\n\n\t\t}\t\n\n\t}\n\n\t\/\/ ok pour signer\n\tif($test == 0 &amp;&amp; $wrongmail == 0 &amp;&amp; $unique == 0 &amp;&amp; $zipcode == 0)\n\t{\n\t\t\/\/S\u00e9rialisation des valeurs des champs\n\t\t$fieldstable[] = NULL;\n\n\t\t\/\/champs enregistr\u00e9 en dur : nom pr\u00e9nom et email\n\t\t$nom=&quot;&quot;;\n\t\t$prenom=&quot;&quot;;\n\t\t$email=&quot;&quot;;\n\n\t\tforeach($fields as $field){\n\n\t\t\tif(empty(${&#039;yawpp_f_field&#039;.$field-&gt;id}))\n\t\t\t{\n\t\t\t\t$fieldstable[$field-&gt;id] = &#039;&#039;;\n\t\t\t}else{\n\t\t\t\t$fieldstable[$field-&gt;id] = ${&#039;yawpp_f_field&#039;.$field-&gt;id};\n\t\t\t}\n\t\t\t\/\/quelques champs en dur dans la bdd (pour les recherches)\n\t\t\tswitch(strtolower($field-&gt;text))\n\t\t\t{\n\t\t\t\tcase &quot;email&quot; :\n\t\t\t\t\/\/echo &quot;email ok&quot;;\n\t\t\t\t$email=${&#039;yawpp_f_field&#039;.$field-&gt;id};\n\t\t\t\tbreak;\n\t\t\t\tcase &quot;pr\u00e9nom&quot; :\n\t\t\t\t\/\/echo &quot;prenom ok&quot;;\n\t\t\t\t$prenom=${&#039;yawpp_f_field&#039;.$field-&gt;id};\n\t\t\t\tbreak;\n\t\t\t\tcase &quot;nom&quot; :\n\t\t\t\t\/\/echo &quot;nom ok&quot;;\n\t\t\t\t$nom=${&#039;yawpp_f_field&#039;.$field-&gt;id};\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t}\n\n\t\t$serializefields = serialize($fieldstable);\n\t\t$wpdb-&gt;query($wpdb-&gt;prepare(&quot;INSERT INTO &quot;.$wpdb-&gt;prefix.&quot;yawpp_signs (time, fieldstable, display, id_petition,email,firstname,lastname) VALUES ( now(), %s, 1, %d, %s,%s,%s)&quot;, $serializefields,  $id_petition, $email, $prenom, $nom));\n\t\techo &#039;&lt;div class=&quot;okmessage_yawpp&quot;&gt;&#039;.__(&quot;Merci, votre signature a bien \u00e9t\u00e9 enregistr\u00e9e.&quot;, &#039;yawpp&#039;).&#039;&lt;\/div&gt;&#039;;\n\t}\n\n\telse\n\t{\n\t\tglobal $yawpp_error;\n\n\t\t\/\/generer les messages d&#039;erreur\n\t\t$yawpp_error=&quot;&quot;;\n\t\t$yawpp_error.= &#039;&lt;div class=&quot;errormessage_yawpp&quot;&gt;&#039;;\n\t\tforeach($fields as $field)\n\t\t{\t\n\n\t\t\t\/\/erreur obligatoire\n\t\t\tif(${&#039;yawpp_f_needed&#039;.$field-&gt;id}==true)\n\t\t\t{\n\t\t\t\t$yawpp_error.= $field-&gt;text.&quot; &quot;.__(&quot;est un champs obligatoires.&quot;, &#039;yawpp&#039;).&#039;&lt;br \/&gt;&#039;;\n\t\t\t}\n\t\t\t\/\/erreur unique\n\t\t\tif(${&#039;yawpp_f_unique&#039;.$field-&gt;id}==true)\n\t\t\t{\n\t\t\t\t$yawpp_error.= __(&quot;Cet email a d\u00e9j\u00e0 \u00e9t\u00e9 utilis\u00e9 pour une autre inscription.&quot;, &#039;yawpp&#039;).&#039;&lt;br \/&gt;&#039;;\n\t\t\t}\n\t\t\t\/\/erreur email\n\t\t\tif(${&#039;yawpp_f_wrongmail&#039;.$field-&gt;id}==true)\n\t\t\t{\n\t\t\t\t$yawpp_error.= $field-&gt;text.&quot; &quot;.__(&quot;n&#039;est pas un e-mail valide.&quot;, &#039;yawpp&#039;).&#039;&lt;br \/&gt;&#039;;\n\t\t\t}\n\t\t\t\/\/erreur code postal\n\t\t\tif(${&#039;yawpp_f_zipcode&#039;.$field-&gt;id}==true)\n\t\t\t{\n\t\t\t\t$yawpp_error.= $field-&gt;text.&quot; &quot;.__(&quot;n&#039;est pas un code postal valide.&quot;, &#039;yawpp&#039;).&#039;&lt;br \/&gt;&#039;;\n\t\t\t}\n\t\t}\n\t\t$yawpp_error.= &#039;&lt;\/div&gt;&#039;;\n\t}\n}\n\n?&gt;<\/code><\/pre>\n<p>https:\/\/wordpress.org\/plugins\/yawpp\/<\/p>\n","protected":false},"template":"","class_list":["post-5390640","topic","type-topic","status-closed","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic\/5390640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic"}],"about":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/types\/topic"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic\/5390640\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/media?parent=5390640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}