<?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
}