• Resolved ArtosDel

    (@djoul71)


    Bonjour, j’ai placé mon formulaire de réservation en dernière étape de mon process de commande sur un site e-commerce.

    J’utilise e transaction comme module de paiement (Crédit Agricole) .
    Ma page de formulaire est paramétrée comme page de “validation de commande” dans le module woocommerce que j’utilise.

    De ce fait, je stock bien dans mon url, les données relatives à ma commande sous le format : /order-received/814/?key=wc_order_5be3149775a0c&order-pay=814

    Comment rediriger l’internaute vers la plateforme de paiement à la validation de la réservation svp ?

    Merci d’avance

Viewing 11 replies - 1 through 11 (of 11 total)
  • Plugin Author Booking Activities Team

    (@bookingactivities)

    Bonjour,

    Pour rediriger vers une URL fixe, vous pouvez utiliser l’option “URL de redirection” prévu dans les paramètres du formulaire.

    Mais si je comprends bien votre URL est dynamique. Dans ce cas, il faudra modifier le paramètre “action” du formulaire de réservation, soit avec Javascript si l’URL doit être changée en fonction de l’évènement choisi par l’utilisateur, soit grace au filtre PHP: “bookacti_form_attributes” (booking-activities/functions/functions-forms.php ligne 223)

    Par exemple:

    function my_theme_change_bookacti_form_action( $atts, $form_id, $displayed_form_fields ) {
    	$atts[ 'action' ] = 'votre-url-calculée-dynamiquement';
    	return $atts;
    }
    add_filter( 'bookacti_form_attributes', 'my_theme_change_bookacti_form_action', 20, 3 );

    Ainsi, l’utilisateur sera redirigée vers la page indiquée lorsque la réservation sera bien prise en compte.
    Mais cela ne sera pas suffisant, il vous faudra gérer les cas où
    – l’utilisateur change d’avis (ne paye pas, modifie sa commande, relance la commande),
    – le paiement échoue (ou même s’il réussi, si vous souhaitez changer l’état de la réservation en fonction)
    Et également délayer l’envoie de l’e-mail de confirmation de réservation.

    Booking Activities gère cela nativement avec WooCommerce lorsque vous liez un formulaire à un produit.

    Cordialement,
    Yoan Cutillas

    Thread Starter ArtosDel

    (@djoul71)

    Effectivement, c’est une url dynamique. J’ai tenté d’insérer votre code à la ligne 223 mais ma page ne s’affiche plus lorsque je le fais ??

    En attendant, j’ai créé un snippet pour récupérer l’url et donc les infos de la commande.
    Après un petit remaniement, l’url collectée est bonne. Lorsque je la copie dans mon explorateur, je suis correctement redirigé.

    $adresse = “https://”.$_SERVER[‘SERVER_NAME’].$_SERVER[“REQUEST_URI”];
    $part = explode (“/”, $adresse);
    $commande=$part[4].$part[5].$part[6];
    $pay=”https://mon_url/commande/”.$commande;

    echo $pay;

    Je ne sais pas si ?a peut servir ???

    Thread Starter ArtosDel

    (@djoul71)

    Heuuuu non en fait cette url issue de $pay ne fonctionne pas autant pour moi …. :/

    Du coup je n’ai pas vraiment compris quelle url je dois renseigner en fait ni comment fonctionne votre code …. désolé :/

    Un peu plus de précision ?

    Merci

    Thread Starter ArtosDel

    (@djoul71)

    Alors, j’avais oublié mes “/” dans mon remaniement d’url :
    De ca : $commande=$part[4].$part[5].$part[6];
    Je suis passé à ca : $commande=$part[4].”/”.$part[5].”/”.$part[6];

    Afin de tester le process, dans le snippet j’ai ajouté :

    <a href="<?php echo $pay; ?>">bouton de test</a>

    Le bouton fonctionne et me renvoie correctement au process de paiement en ligne avec tout ce qui va avec (prix, numéro de commande, etc)

    Il faut donc que j’arrive à reproduire la même chose sur ce bouton de formulaire de réservation.

    • This reply was modified 6 years, 4 months ago by ArtosDel.
    • This reply was modified 6 years, 4 months ago by ArtosDel.
    Plugin Author Booking Activities Team

    (@bookingactivities)

    Bonjour,

    Vous y êtes presque alors ??
    Il faut ajouter le code que je vous ai fourni dans le fichier functions.php de votre thème enfant. (La ligne 223 du fichier mentionné indiquait où se trouve le hook dans le cas où vous ayez besoin de lire le code.)

    Cordialement,
    Yoan Cutillas

    Thread Starter ArtosDel

    (@djoul71)

    oui ??
    Alors pour info, j’ai mis en début de fichier (booking-activities/functions/functions-forms.php) le contenu de mon snippet :

    //Url dynamique
    $adresse = "https://".$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
    
    $part = explode ("/", $adresse);
    $commande=$part[4]."/".$part[5]."/".$part[6];
    $pay="https://mon_url/commande/".$commande;
    
    session_start();
    $_SESSION["paiement"]=$pay;

    Puis j’ai ajouté à la ligne 246 ceci :
    <form <?php echo $form_attributes_str; ?> action="<?php echo $_SESSION['paiement']; ?>">

    La redirection se fait bien, la réservation est ok ??

    Plugin Author Booking Activities Team

    (@bookingactivities)

    Le problème si vous modifiez directement le code du plugin, c’est que vos modifications seront supprimées à chaque mise à jour.
    C’est pourquoi il est préférable d’utiliser un thème enfant, vous pourrez ensuite mettre votre code à l’intérieur de la fonction founie, dans le fichier functions.php.

    Thread Starter ArtosDel

    (@djoul71)

    C’est tout a fait vrai :/

    Donc si je résume, j’insère ce code en entête de mon fichier functions.php dans mon theme enfant :

    //Url dynamique
    $adresse = "https://".$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
    
    $part = explode ("/", $adresse);
    $commande=$part[4]."/".$part[5]."/".$part[6];
    $pay="https://mon_url/commande/".$commande;
    
    session_start();
    $_SESSION["paiement"]=$pay;

    Mais comment et où insérer votre code ? Je n’ai que ‘votre-url-calculée-dynamiquement’ à modifier ?

    function my_theme_change_bookacti_form_action( $atts, $form_id, $displayed_form_fields ) {
    	$atts[ 'action' ] = 'votre-url-calculée-dynamiquement';
    	return $atts;
    }
    add_filter( 'bookacti_form_attributes', 'my_theme_change_bookacti_form_action', 20, 3 );
    

    Je ne pense pas que la ligne 223 soit adaptée à l’implantation dans mon functions.php :/

    • This reply was modified 6 years, 4 months ago by ArtosDel.
    • This reply was modified 6 years, 4 months ago by ArtosDel.
    Plugin Author Booking Activities Team

    (@bookingactivities)

    Voici comment procéder du début:

    1. Créez votre thème enfant (tuto ici, ou utilisez un générateur de thème enfant ici. Il existe beaucoup d’autres tuto et générateurs (la plupart sont des plugins), n’hésitez pas à en rechercher un autre si ceux-ci ne vous conviennent pas)

    2. Ajouter ce code dans le fichier functions.php

    function my_theme_change_bookacti_form_action( $atts, $form_id, $displayed_form_fields ) {
    	$adresse = "https://".$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
    	$part = explode( "/", $adresse );
    	$commande = $part[4]."/".$part[5]."/".$part[6];
    	$atts[ 'action' ] = "https://mon_url/commande/".$commande;
    	return $atts;
    }
    add_filter( 'bookacti_form_attributes', 'my_theme_change_bookacti_form_action', 20, 3 );

    3. Installez votre thème enfant (soit en le chargeant directement via FTP dans wp-content/themes, soit via l’interface d’administration en envoyant un zip dans Apparence > Thèmes > Ajouter un thème > Téléverser un thème

    4. Activez votre thème enfant dans Apparence > Thèmes

    Et cela devrait fonctionner.

    Thread Starter ArtosDel

    (@djoul71)

    Parfait ! Cela semble fonctionner merci infiniment ??

    Plugin Author Booking Activities Team

    (@bookingactivities)

    Super, merci à vous.

Viewing 11 replies - 1 through 11 (of 11 total)
  • The topic ‘Lien vers plateforme de paiement’ is closed to new replies.