Redirigir tras un pedido confirmado en Woocommerce o modificar la página de gracias.

Os dejamos otros códigos útiles para vuestras tiendas en Woocommerce. En este caso, para poder redirigir a una página que queráis después de realizar un pedido con éxito, o para modificar la página de agradecimiento que Woocommerce pone por defecto.

Para ello vamos a usar diferentes hooks de Woocommerce que os dejamos aquí.

Os recordamos que estos códigos podéis ponerlos en el fichero functions.php de vuestro tema hijo, o en un plugin tipo Snippets.

Cómo redirigir a una página de nuestra elección tras confirmarse un pedido en Woocommerce.

El primer código que os vamos a dejar cambia el proceso de compra. Si normalmente , tras un pago exitoso, Woocommerce te redirige a una página de “Gracias por su pedido“, vamos a cambiar ese paso y decirle a la tienda dónde queremos que vaya después de confirmarse el pago.

add_action( 'woocommerce_thankyou', 'smythsys_woocommerce_redirect_after_checkout');
 
function smythsys_woocommerce_redirect_after_checkout( $order_id ){

    $order = wc_get_order( $order_id );
    $url = 'https://páginaderedireccion.es';
    if ( ! $order->has_status( 'failed' ) ) {
        wp_safe_redirect( $url );
        exit;
    }
}

Esto te permite hacer cosas como:

  • llevar al cliente a un formulario para que rellene tras el pedido.
  • hacer una página personalizada de agradecimiento y redirigirle a ella.
  • Crear embudos de venta para poder realizar acciones tras un pedido.

Modificar elementos de la página de Gracias por tu pedido por defecto.

Os dejamos dejamos dos códigos para modificar la página por defecto:

add_filter( 'woocommerce_endpoint_order-received_title', 'smythsys_thank_you_title' );
 
function smythsys_thank_you_title( $old_title ){

 	return 'Aqui el titulo en html';

}

Aquí un código para modificar el texto debajo del título.

add_filter( 'woocommerce_thankyou_order_received_text', 'smythsys_thank_you_title', 20, 2 );

function smythsys_thank_you_title( $thank_you_title, $order ){

	return 'Estimado ' . $order->get_billing_first_name() . ', gracias por su pedido.';

}

Plantilla para crear tu página de Gracias por tu pedido personalizada.

De la documentación de Woocommerce sacamos esta plantilla que puedes usar para modificar la página de ayuda totalmente, con los campos de totales y de productos del pedido.

/**
 * Add custom tracking code to the thank-you page
 */
add_action( 'woocommerce_thankyou', 'my_custom_tracking' );

function my_custom_tracking( $order_id ) {

	// Lets grab the order
	$order = wc_get_order( $order_id );

	/**
	 * Put your tracking code here
	 * You can get the order total etc e.g. $order->get_total();
	 */
	 
	// This is the order total
	$order->get_total();
 
	// This is how to grab line items from the order 
	$line_items = $order->get_items();

	// This loops over line items
	foreach ( $line_items as $item ) {
  		// This will be a product
  		$product = $order->get_product_from_item( $item );
  
  		// This is the products SKU
		$sku = $product->get_sku();
		
		// This is the qty purchased
		$qty = $item['qty'];
		
		// Line item total cost including taxes and rounded
		$total = $order->get_line_total( $item, true, true );
		
		// Line item subtotal (before discounts)
		$subtotal = $order->get_line_subtotal( $item, true, true );
	}
}