Alterar o status do pedido com AJAX no plugin wordpress
Redirecionamento Woocommerce para página personalizada dependendo do status do pedido
Redirecionar para outra página após alteração do status do pedido
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>Obrigado pelo seu pedido, você será redirecionado em 5 segundos.</p>';
$link_redirect = 'https://triks.digital/';
?>
<script>
document.addEventListener('DOMContentLoaded', function() {
setTimeout(function(){
window.location.href = '<?php echo $link_redirect; ?>';
}, 5000);
});
</script>
<?php
}
{ ?>
<?php }
}
Explicação Detalhada
- add_action(‘woocommerce_thankyou’, ‘ak_javascript_redirect_from_the_thankyou_hook’, 10, 1);
Este código adiciona uma função ao gancho (hook)woocommerce_thankyou
, que é executado quando o usuário é redirecionado para a página de agradecimento após finalizar um pedido. A funçãoak_javascript_redirect_from_the_thankyou_hook
será chamada com a prioridade10
e aceita um argumento ($order_id). - function ak_javascript_redirect_from_the_thankyou_hook($order_id) {
Define a função que será executada no ganchowoocommerce_thankyou
. Esta função aceita o ID do pedido como argumento. - $order = wc_get_order($order_id);
Obtém o objeto do pedido com base no ID do pedido fornecido. - $orderstatus = $order->get_status();
Obtém o status do pedido. Isso pode ser qualquer status, como ‘pending’, ‘processing’, ‘completed’, etc. - if ($orderstatus == ‘completed’) {
Verifica se o status do pedido é ‘completed’. Se for, o código dentro deste bloco será executado. - echo ‘<p>Obrigado pelo seu pedido, você será redirecionado em 5 segundos.</p>’;
Exibe uma mensagem de agradecimento ao usuário, informando que ele será redirecionado em 5 segundos. - $link_redirect = ‘https://triks.digital/‘;
Define a URL para onde o usuário será redirecionado. - <script> … </script>
Inclui um script JavaScript que será executado quando o documento estiver totalmente carregado.- document.addEventListener(‘DOMContentLoaded’, function() {
Adiciona um ouvinte de evento que executa a função interna quando o DOM (Document Object Model) estiver completamente carregado. - setTimeout(function(){ window.location.href = ‘<?php echo $link_redirect; ?>’; }, 5000);
Define um temporizador de 5 segundos (5000 milissegundos) e, após esse tempo, redireciona o navegador para a URL definida em$link_redirect
.
- document.addEventListener(‘DOMContentLoaded’, function() {
- }
Fecha o bloco if que verifica o status do pedido.
Este código é útil para redirecionar automaticamente os usuários para uma página específica (por exemplo, uma página de agradecimento personalizada ou uma página de promoções) após a conclusão de um pedido no WooCommerce.