Rechercher

Commander à nouveau une ancienne commande woocommerce

Placeholder image
<?php

/**
 *  Order Again 
 */
add_filter( 'woocommerce_my_account_my_orders_actions', 'mahii_order_again_action', 9999, 2 ); 
function mahii_order_again_action( $actions, $order ) {
   if ( $order->has_status( 'completed' ) ) {
      $actions['order-again'] = array(
         'url' => wp_nonce_url( add_query_arg( 'order_again', $order->get_id(), wc_get_cart_url() ), 'woocommerce-order_again' ),
         'name' => __( 'Order again', 'woocommerce' ),
      );
   }
   return $actions;
}


/**
 * @snippet       Add popup after re-order
 * @author        Mahii
 * @compatible    WooCommerce 6
 */
add_action('woocommerce_account_content', 'order_again_popup_code', 10, 2);
function order_again_popup_code() {
?>
<div id="order-again-popup" class="order-again-popup" style="display: none">
   <div id="closeButton" class="close"></div>
    <p><?php _e('Attention, les prix seront actualisés dans cette nouvelle commandes', 'hello-elementor-child'); ?></p>
    <div class="order-again-popup-actions">
      <button id="continueButton"><?php _e('Continuer',  'hello-elementor-child'); ?></button>
      <button id="cancelButton"><?php _e('Annuler',  'hello-elementor-child'); ?></button>
    </div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
    var popup = document.getElementById('order-again-popup');
    function showPopup() {
      popup.style.display = 'block';
    }
    function hidePopup() {
      popup.style.display = 'none';
    }

    document.getElementById('continueButton').addEventListener('click', function() {
      window.location.href = originalOrderURL;
    });

    document.getElementById('cancelButton').addEventListener('click', function() {
      hidePopup();
    });
    document.getElementById('closeButton').addEventListener('click', function() {
      hidePopup();
    });

   let reordersButtons = document.querySelectorAll('.woocommerce-button.order-again');
   reordersButtons.forEach(button => {
      button.addEventListener('click', reorder);
   });

    function reorder(e) {
      e.preventDefault();
      originalOrderURL = this.href;
      showPopup();
    }
});

</script>
<?php 
}