3 sujets de 1 à 3 (sur un total de 3)
  • Auteur
    Messages
  • #73623
    Allandore
    Participant
    Points: 17 pts

    Bonjour à tous,

    J’utilise le plugin payant woocommerce booking dans ma boutique. Cette dernière est synchronisée avec l’ERP Dolibarr via le système de synchronisation Splash Sync.

    Toutefois lorsque je passe une commande qui n’est pas un produit simple mais une réservation (un booking donc), Dolibarr reçoit bien les infos excepté la date à laquelle la réservation a été prise. L’unique date récupérée est celle de la commande.

    Je pensais donc lors de ce passage de commande, récupérer la date de réservation et l’attribuer à la date de la commande.

    J’arrive à récupérer la date de réservation comme ceci :

    $items = WC()->cart->get_cart();
    
    foreach($items as $item) { 
        $date = $item['booking']['date'];
    }
    

    Mais à partir de là je sèche un peu pour attribuer cette valeur à la date de la commande.

    Auriez-vous une idée ou un début de piste?

    Merci beaucoup

    depanagewp
    #73649
    Allandore
    Participant
    Points: 17 pts

    J’avance un peu, voici mon code placé dans functions.php :


    add_action('woocommerce_checkout_create_order', 'before_checkout_create_order', 20, 1);
    function before_checkout_create_order($order) {
    $order = wc_get_order($order);
    $order->set_date_created('2018-10-20 00:00:00.000000');
    $order->set_date_paid('2018-10-20 00:00:00.000000');
    $order->set_date_modified('2018-10-20 00:00:00.000000');
    return $order;
    }

    Lorsque je valide la commande un message d’erreur apparaît : Internal server error

    Après plusieurs tests j’ai vu que le système ne veut apparemment pas qu’on modifie manuellement la date de création et la date de modification d’une commande à ce moment. La date de paiement elle se modifie bien, mais c’est celle de création qui m’intéresse.

    Voici les ressources que j’ai trouvées et qui m’ont aidé :

    Le hook woocommerce_checkout_create_order qui intervient juste avant que les données soient enregistrées

    https://stackoverflow.com/questions/25626058/add-extra-meta-for-orders-in-woocommerce/48502896#48502896

    Un exemple de ce même hook pour changer le prix d’une commande après l’avoir payée

    https://stackoverflow.com/questions/49036503/change-order-total-after-checkout-in-woocommerce

    Même chose pour changer une adresse d’expédition

    https://wordpress.stackexchange.com/questions/273907/filter-hook-before-create-order-woocommerce

    depanagewp
    #78452
    Jessica
    Participant
    Points: 34 pts
    Membre 2 étoiles

    Bonjour,

    Je suis désolée, je vais commenter alors que je ne peux pas vous aider !
    J’utilise moi aussi Woobooking, et je suis en train de prospecter pour voir s’il ne serait pas judicieux d’en changer…

    Mais ce message, surtout car grace à vous, je découvre Dolibarr ! Vous en êtes satisfaits ? Du coup, vous n’utilisez pas de plugin de facturation interne à woo ?
    Est ce que cela régle ce pb de loi finance ?

    Merci 😉
    Merci par avance

    depanagewp
3 sujets de 1 à 3 (sur un total de 3)
  • Vous devez être connecté pour répondre à ce sujet.