implémentation Fonction PHP de comparaison de date

Petit nouveau ! | 1 Messages

23 août 2022, 17:28

Bonjour,
Je ne suis pas expert en PHP mais désire, pour aller un peu plus loin sur le site internet que j'ai créé, modifier une fonction qui fonctionne avec le plugin de réservation d'évènements que j'utilise sur wordpress.
En effet, j'ai la fonction suivante qui me permet d'accorder un rabais si le champ: MY_FIELD_NAME correspont à yes
function my_eme_discount_function($booking) {
    $calculated_discount=0;
    $coupon="";
    // calculate your stuff based on the booking and answers arrays
    // and return the discount. A starting example:
    $answers=eme_get_booking_post_answers($booking);
    foreach ($answers as $answer) {
        if ($answer['field_name'] == "MY_FIELD_NAME") {
               $coupon = $answer['answer'];
        }
    }
    // now check $coupon for your wanted value and do the discount ($booking has all the booking info)
    if ($coupon == "yes") {
            // return a total discount of 30%
            $calculated_discount=$booking['event_price']*$booking['booking_seats']*.3;
    }
    return $calculated_discount;
}
add_filter('eme_discount_testdiscount2','my_eme_discount_function');
J'aimerai la modifier pour que le champ ne soit plus MY_FIELD_NAME mais Date de naissance et que le rabais ne soit plus accordé si la valeur est égal à yes mais si la date de naissance et postérieure au 01.01.2002.

Mon site fonctionne sous wordpress, le format de date du site est en d-m-Y et le format de date du champ Date de naissance et en HTML5

Un grand merci si quelqu'un peu m'aider!

Mammouth du PHP | 881 Messages

12 sept. 2022, 04:20

Bonjour,

d'abord, vois quel format de date t'est retourné par le formulaire:
var_dump($_POST);
Ensuite, tu peux faire trois choses:
1) décoder la valeur reçue depuis le formulaire ( avec des substr($_POST["DteNaissance"], x, y); ... exemple:
if (subtr($_POST["Naiss"], -4)."-".subtr($_POST["Naiss"], 3, 2)."-".subtr($_POST["Naiss"], 0, 2 > "1990-01-01) { 
OU
2) comparer la valeur reçue à une date formatée de la même manière que la valeur reçue comme ceci:
if( ($_POST["DteNaissance"] > date("d.m.Y") { 
OU
3) Modifier ton formulaire de manière à recevoir trois champs distincts ( jour, mois et année) que tu traiteras ensuite à ta guise; par exemple:
if ($_POST["AnneeNais"]."-".$_POST["MoisNais"]."-".$_POST["JourNais"] > "1990-01-01") { 
Soyez artisans de paix