Redireccionar a la página de compra en WooCommerce

En WooCommerce, a veces es útil redireccionar a los usuarios directamente a la página de compra después de que hagan clic en «comprar» en un producto. Esto puede mejorar la experiencia del usuario al reducir el número de pasos necesarios para completar una compra. En este artículo, te mostraremos cómo hacerlo con algunos ejemplos de código PHP.

Añadir un hook para la redirección.

Para redireccionar a los usuarios a la página de compra, podemos usar el hook woocommerce_add_to_cart_redirect. Este hook nos permite modificar la URL de redirección después de que un producto se añade al carrito.

Primero, añadimos el siguiente código a nuestro archivo functions.php del tema activo:

<?php
function custom_add_to_cart_redirect() {
    return wc_get_checkout_url();
}
add_filter('woocommerce_add_to_cart_redirect', 'custom_add_to_cart_redirect');
  • custom_add_to_cart_redirect(): Esta función define la URL de redirección. Usamos wc_get_checkout_url() para obtener la URL de la página de compra.
  • add_filter('woocommerce_add_to_cart_redirect', 'custom_add_to_cart_redirect'): Este filtro aplica nuestra función personalizada para modificar la URL de redirección después de añadir un producto al carrito.

Manejar productos individuales

Si deseas redirigir solo para ciertos productos, puedes modificar la función para que verifique el ID del producto antes de redirigir. Aquí hay un ejemplo:

<?php
function custom_add_to_cart_redirect($url) {
    // Obtiene el ID del producto agregado al carrito
    $product_id = absint($_POST['add-to-cart']);

    // Especifica el ID del producto que deseas redireccionar
    $target_product_id = 123; // Cambia esto por el ID de tu producto

    // Verifica si el producto coincide y redirige a la página de compra
    if ($product_id === $target_product_id) {
        $url = wc_get_checkout_url();
    }

    return $url;
}
add_filter('woocommerce_add_to_cart_redirect', 'custom_add_to_cart_redirect');
  • absint($_POST['add-to-cart']) : Obtiene el ID del producto que se ha añadido al carrito.
  • 123 : Reemplaza este número con el ID del producto específico que deseas redirigir.
  • La condición if ($product_id === $target_product_id) verifica si el ID del producto añadido coincide con el ID del producto objetivo.

Redirigir según la categoría de producto.

Si deseas redirigir según la categoría de producto, puedes modificar la función para comprobar la categoría del producto:

<?php
function custom_add_to_cart_redirect_by_category($url) {
    // Obtiene el ID del producto agregado al carrito
    $product_id = absint($_POST['add-to-cart']);
    
    // Obtiene las categorías del producto
    $product = wc_get_product($product_id);
    $product_categories = $product->get_category_ids();
    
    // Especifica la categoría que deseas redireccionar
    $target_category_id = 10; // Cambia esto por el ID de tu categoría

    // Verifica si el producto pertenece a la categoría objetivo y redirige a la página de compra
    if (in_array($target_category_id, $product_categories)) {
        $url = wc_get_checkout_url();
    }

    return $url;
}
add_filter('woocommerce_add_to_cart_redirect', 'custom_add_to_cart_redirect_by_category');
  • wc_get_product($product_id) : Obtiene el objeto del producto basado en su ID.
  • $product->get_category_ids() : Obtiene las categorías del producto como un array de IDs.
  • 10 : Reemplaza este número con el ID de la categoría que deseas redirigir.

Redirigir a los usuarios a la página de compra en WooCommerce puede ser una excelente manera de mejorar la experiencia de compra y aumentar las conversiones. Con los ejemplos de código anteriores, puedes personalizar fácilmente la redirección según tus necesidades específicas, ya sea para todos los productos, productos individuales o productos en ciertas categorías.

¡Espero que este artículo te haya sido útil! Si tienes alguna pregunta o necesitas más ayuda, no dudes en dejar un comentario.q

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
Back to Top
0
Would love your thoughts, please comment.x
()
x