Ahora solo queda no fallarle y, como mínimo, cumplir sus espectativas.
Una estrategia de marketing muy buena y poco utilizada, es [subraya_verde]aprovechar la Thank You Page de Finalizar Compra para realizar remarketing.[/subraya_verde] A esta página se accede tras realizar el pago, y normalmente WooCommerce la utiliza para mostrar un resumen de compra.
¿Por qué no darle una vuelta de tuerca y mostrar productos o promociones relacionadas que le inciten a volver pronto? Esta estrategia, muy utilizada en webs como JustEat o Booking, da resultados muy buenos, pero para ser realmente efectiva tenemos que saber qué mostrar de toda nuestra tienda.
Si el cliente ha adquirido unas zapatillas deportivas, tal vez podríamos mostrarle calcetines y camisetas técnicas, relojes deportivos, cronómetros…
¿Y cómo lo hacemos?
[titulo]El código paso a paso[/titulo]
Tenemos que indicar a WooCommerce que el código se ejecutará justo tras la compra. Para ello nos aprovechamos de la url que devolverá el plugin y buscamos que contenga [codigo]order-received[/codigo]:
if ( ! is_wc_endpoint_url( 'order-received' ) ) return;
Después conectamos con las funciones de WordPress para poder hacer uso de su flujo de datos:
global $wp;
El siguiente paso es extraer el ID de la orden, que también lo podemos extraer de la url.
Si el slug está en español:
$order_id = intval( str_replace( 'finalizar-compra/order-received/', '', $wp->request ) );
Si el slug esta en inglés:
$order_id = intval( str_replace( 'checkout/order-received/', '', $wp->request ) );
Y ahora podemos extraer los productos que se adquirieron en esa orden de compra:
$order = wc_get_order( $order_id ); $items = $order->get_items();
Recorremos el array:
foreach ( $items as $item ) { $product_id = $item->get_product_id(); //Para el id de producto $product_name = $item->get_name(); //Para el nombre de producto $product_variation_id = $item->get_variation_id(); //Para la variación si es un producto variable }
En nuestro caso particular emplearemos únicamente el [codigo]product_id[/codigo]. Y realizaremos un redireccionamiento en cuanto encontremos que se ha adquirido algún producto de los que vamos a usar en nuestro remarketing.
Así que en lugar de lo anterior, nosotros haremos:
foreach ( $items as $item ) { $product_id = $item->get_product_id(); if ($product_id == 2700){ wp_redirect( home_url( '/pediatra-online-consulta-interactiva/' ) ); break; } if ($product_id == 2564){ wp_redirect( home_url( '/pediatra-online-enviar-email/' ) ); break; } }
¡Ya ya está! Solo queda envolverlo todo en una función, añadirle en enque y subirlo al archivo [codigo]functions.php[/codigo] de nuestro tema activo o del child theme.
[titulo]El código completo[/titulo]
Para que os resulte más fácil, os lo ponemos completo:
add_action( 'template_redirect', 'wc_custom_redirect_after_purchase' ); function wc_custom_redirect_after_purchase() { if ( ! is_wc_endpoint_url( 'order-received' ) ) return; global $wp; $order_id = intval( str_replace( 'finalizar-compra/order-received/', '', $wp->request ) ); // ID de la orden $order = wc_get_order( $order_id ); $items = $order->get_items(); foreach ( $items as $item ) { $product_id = $item->get_product_id(); if ($product_id == 2700){ wp_redirect( home_url( '/pediatra-online-consulta-interactiva/' ) ); break; } if ($product_id == 2564){ wp_redirect( home_url( '/pediatra-online-enviar-email/' ) ); break; } } }
Gracias por tu post me ha sido de mucha ayuda sali de ciertas dudas, ahora si yo quisiera mostrar el checkout y luego de unos segundos redirigir a una pagina de agradecimiento personalizada?