Вот поток:
- Покупатель добавляет товар в корзину.
- Клиент добавляет купон "smile" при оформлении заказа.
- Когда клиент размещает заказ, функция запускается до загрузки страницы "Детали заказа".Функция проверит купон на «улыбку» и, если он был применен, перенаправит на новую страницу, где им будут предложены дополнительные продукты бесплатно.Если нет, то он продолжается как обычно.
Я ссылался на два решения, которые я нашел в поиске Google, похожих на части моей проблемы.По отдельности я заставляю их работать, но вместе я не могу заставить их работать правильно.
Вот мой код:
add_action( 'woocommerce_thankyou' , 'sq_checkout_custom_redirect' );
function sq_checkout_custom_redirect($order_id) {
global $woocommerce;
$order = new WC_Order( $order_id );
$coupon_id = 'smile';
$applied_coupon = $woocommerce->cart->applied_coupons;
$url = 'https://site.mysite.org/score-you-win/';
if( $applied_coupon[0] === $coupon_id ) {
echo "<script type=\"text/javascript\">window.location.replace('".$url."');</script>";
} else {
echo '<h3 style="font-size:200px; z-index:30000; color:#000 !important;">Coupon not applied</h3>';
}
}
Независимо от того, к какому купону я обращаюсь, я получаю сообщение "Купон"не применяется."и никакого перенаправления не происходит.
Два решения, на которые я ссылаюсь:
Найти примененный coupon_id в корзине
Перенаправление с JS
Этот код успешно выполняется:
add_action( 'woocommerce_thankyou', function ($order_id){
$order = new WC_Order( $order_id );
$coupon_id = "smile";
$url = 'https://site.mysite.org/score-you-win/';
if ($order->status != 'failed') {
echo "<script type=\"text/javascript\">window.location.replace('".$url."');</script>";
}
});
И это успешно выполняется:
function product_checkout_custom_content() {
global $woocommerce;
$coupon_id = 'smile';
$applied_coupon = $woocommerce->cart->applied_coupons;
if( $applied_coupon[0] === $coupon_id ) {
echo '<span style="font-size:200px; z-index:30000; color:#red !important;">We are happy you bought this product =)</span> ';
} else {
echo '<h3 style="font-size:200px; z-index:30000; color:#000 !important;">Coupon not applied</h3>';
}
}
add_action( 'woocommerce_thankyou' , 'sq_checkout_custom_redirect' );