Woocommerce añadir al carrito botón redirigir a la caja
He creado un comercio electrónico utilizando el plugin woocommerce. Estoy vendiendo solo una suscripción por lo que la página "/cart/" 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.
7 answers
Puede usar un filtro en funciones.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 un solo producto, que creo que es lo que usas
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();
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-12 18:22:45
Hay 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!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-24 00:39:51
He encontrado una solución simple que funciona como magia.
- Como lo mencionó @Ewout, marque la casilla que dice "Redirecto a la página del carrito después de la adición exitosa".
- Woocommerce > Configuración > Checkout (Pestaña) - donde debe seleccionar las páginas para el carrito y el pago, seleccione la página de pago como la página del carrito (imagen adjunta).
Eso es todo. funciona para mí.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-30 14:31:12
@RemiCorson publicó este breve pero beneficioso tutorial:
Http://www.remicorson.com/woocommerce-skip-product-cart-pages /
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:
Hay un enlace directo que un usuario puede usar para omitir automáticamente el producto pagina. 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 caja desde la página de inicio y otras páginas/publicaciones que no son de woocommerce.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-19 13:46:32
Filter add_to_cart_redirect está obsoleto en WooCommerce 2.6. Use woocommerce_add_to_cart_redirect en su lugar.
Añada esto a sus funciones.php :
add_filter ('woocommerce_add_to_cart_redirect', function() {
return WC()->cart->get_checkout_url();
} );
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-31 10:29:16
En la página de la tienda, si desea utilizar ajax y redirigir juntos. El segundo método solo cuando hay alguna condición, puede utilizar este filtro y dejar en Woocommerce ajax ajuste habilitado:
add_filter('woocommerce_loop_add_to_cart_link', array( $this, 'add_quantity_input' ), 4, 2);
Para eliminar en un atributo de clase ajax_add_to_cart
y cambiar el valor href a la página 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.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-12 15:40:53
Ninguna de las soluciones realmente funcionó para mí, el filtro add_to_cart_redirect se activaba en cada página,no solo en el carrito.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
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-23 08:00:55