重定向至订单状态更改后的另一页



我的wordpress-woocommerce商店里有一个支付系统,在他们选择支付方式后,他们会被带到一个带有支付详细信息的屏幕上转账。付款完成后,订单状态会自动更改,我需要在订单状态更改后将其重定向到感谢页面

我试着把重定向代码放在这个钩子里:

add_action( 'woocommerce_thankyou', function( $order_id ){ //redirect code here }

但是重定向在同一时刻不起作用,为了进行重定向,用户需要刷新页面。我需要在不刷新的情况下进行重定向

当订单状态更改时,我应该使用什么挂钩来激活,并使代码将此订单的页面重定向到感谢页面?因为我尝试了另一个在订单更改时激活的挂钩,但这使您编辑产品的管理屏幕重定向到感谢页面,而不是客户看到的带有付款详细信息的屏幕

如果有人能帮助我,我将不胜感激,谢谢!

您可以使用以下代码:

add_action( 'woocommerce_thankyou', 'ak_javascript_redirect_from_the_thankyou_hook', 10, 1 );
function ak_javascript_redirect_from_the_thankyou_hook($order_id){
$order = wc_get_order($order_id); //<--check this line
$orderstatus = $order->get_status();
if (($orderstatus == 'completed')) {

echo '<p>Thanks for your order you will be redirected to the woocommerce.com site in 5 seconds.</p>';
$link_redirect  = 'https://woocommerce.com/';
?>
<script>
document.addEventListener('DOMContentLoaded', function() {
setTimeout(function(){
window.location.href = '<?php echo $link_redirect; ?>';
}, 5000);
});
</script>
<?php
}
}

如果有人需要Richard想要的代码,这对我很有效:

add_action( 'woocommerce_thankyou', 'ak_javascript_redirect_from_the_thankyou_hook', 10, 1 );
function ak_javascript_redirect_from_the_thankyou_hook($order_id){
$order = wc_get_order($order_id); //<--check this line
$orderstatus = $order->get_status();
if (($orderstatus == 'completed')) {

echo '<p>Thanks for your order you will be redirected to the woocommerce.com site in 5 seconds.</p>';
$link_redirect  = 'https://woocommerce.com/';
?>
<script>
document.addEventListener('DOMContentLoaded', function() {
setTimeout(function(){
window.location.href = '<?php echo $link_redirect; ?>';
}, 5000);
});
</script>
<?php


}

{ ?>
<script type="text/javascript">
window.setTimeout(function(){ document.location.reload(true); }, 8000);
</script>
<?php }

}

最新更新