texto seleccionar quitar productos pagina opciones icono editar color carrito cambiar boton añadir php wordpress wordpress-plugin woocommerce

php - seleccionar - Woocommerce añadir al carrito de compra redirigir a la caja



pagina de productos woocommerce (7)

Creé un comercio electrónico usando el plugin woocommerce. Solo estoy vendiendo una suscripción, por lo que la página "/ carrito /" es inútil. Estoy tratando de deshacerme de él para que cuando mi cliente haga clic en el botón "Agregar al carrito", termine en la página de pago.


@RemiCorson publicó este breve pero provechoso tutorial:

http://www.remicorson.com/woocommerce-skip-product-cart-pages/

Él menciona el mismo filtro que @Ewout arriba,

add_filter (''add_to_cart_redirect'', ''redirect_to_checkout''); function redirect_to_checkout() { global $woocommerce; $checkout_url = $woocommerce->cart->get_checkout_url(); return $checkout_url;

}

pero una línea de código se destaca y es de gran valor para mí para mi proyecto woocommerce actual:

Existe un enlace directo que un usuario puede usar para omitir automáticamente la página del producto. http://your-site.com/?add-to-cart=37

''37'' será reemplazado por su ID de producto.

Esto fue útil para mí para eliminar pasos innecesarios y llevar a los usuarios directamente a la salida desde la página de inicio y otras páginas / publicaciones no woocommerce.


El filtro add_to_cart_redirect está en desuso en WooCommerce 2.6. Use woocommerce_add_to_cart_redirect en su lugar.

Agregue esto a sus funciones.php:

add_filter (''woocommerce_add_to_cart_redirect'', function() { return WC()->cart->get_checkout_url(); } );


En la página de la tienda, si quieres usar ajax y redirigir entre sí. El segundo método solo cuando hay alguna condición, puede usar este filtro y dejar activado el ajuste de WooCommerce ajax habilitado:

add_filter(''woocommerce_loop_add_to_cart_link'', array( $this, ''add_quantity_input'' ), 4, 2);

eliminar en un atributo de clase ajax_add_to_cart y cambiar el valor de href a la página de URL de pago;

En mi caso de plantilla:

public function add_quantity_input($text = null, $product = null) { global $product, $woocommerce; if ( $text != null and $product != null ) { if(ismycondition($product->id)) { $s = explode(''class="'', $text); $s[2]=str_replace(''ajax_add_to_cart'', '''', $s[2]); $text = implode(''class="'', $s); $text = preg_replace(''/<a(.*)href="([^"]*)"(.*)>/'',''<a$1href="''.$woocommerce->cart->get_checkout_url().''"$3>'', $text); } } return $text; }

Espero que esta ayuda.


Encontré una solución simple que funciona como magia.

  1. Como se menciona en @Ewout, marque la casilla que dice "Redirecto a la página del carrito después de la adición exitosa".
  2. Woocommerce> Configuración> Pagar (Tab): donde debe seleccionar las páginas para el carrito y el pago y envío, seleccione la página de pago como la página del carrito (imagen adjunta).

Eso es. funciona para mi.


Existe una opción dentro de la configuración de WooCommerce que le permite habilitar esta funcionalidad:

Simplemente inicie sesión en su panel de administración de WP> WooCommerce> Catálogo y seleccione la opción. ¡Espero que esto ayude!


Ninguna de las soluciones realmente funcionó para mí, el filtro add_to_cart_redirect se activaba en cada página, no solo en el carro. Hice algunas modificaciones en la respuesta sugerida.

add_filter (''add_to_cart_redirect'', ''redirect_to_checkout''); function redirect_to_checkout() { if(is_cart()){ $checkout_url = WC()->cart->get_checkout_url(); ?> <script> location = ''<?=$checkout_url?>''; </script> <?php } }


puedes usar un filtro en functions.php:

add_filter (''add_to_cart_redirect'', ''redirect_to_checkout''); function redirect_to_checkout() { global $woocommerce; $checkout_url = $woocommerce->cart->get_checkout_url(); return $checkout_url; }

no parece funcionar con ajax, pero funciona desde las páginas de productos individuales, que creo que es lo que usa

En las últimas versiones de WooCommerce (> = 2.1) la función se puede simplificar como:

function redirect_to_checkout() { return WC()->cart->get_checkout_url(); }