WooCommerce: Eliminar productos en pagos
WooCommerce: Eliminar productos en pagos. Si necesita agregar productos en la página del producto, eliminar productos en la página del carrito (Carrito) y la página de pago para ingresar los datos del cliente. Sin embargo, esta lógica no se adapta a todo el mundo.
Algunas personas quieren saber cómo eliminar productos en la página de pago.
Me enfrenté a este problema. Así que probé por mi cuenta y encontré 2 soluciones:
1) Solución al Problema de eliminar productos en WooCommerce
El problema es que algunos clientes pueden agregar varios productos al carrito y luego, al ir a la página de pago, ya no tienen la oportunidad de cambiar su pedido y, por lo tanto, se niegan a comprar.
Editar ficheros de Plugin WooCommerce
- Anular la revisión del pedido de WooCommerce en la página de pago en su tema:
-
-
- Cree una carpeta en su tema, llamada ‘woocommerce’, luego cree una carpeta secundaria llamada ‘checkout’ allí.
- Copie el archivo review-order.php de la carpeta de woocommerce (plugins/woocommerce/templates/checkout) en su nueva carpeta de pago. Este nuevo archivo review-order.php anulará la plantilla predeterminada.
-
- Agregar el botón Eliminar x para cada producto en la página de pago:
En el nuevo review-order.php (yourtheme/woocommerce/checkout):
-
-
- Agregue <th class=»product-remove»><?php _e( ‘Remove’, ‘woocommerce’ ); ?></th> en la cabecera de la mesa de la tienda.
- Copie del archivo cart.php predeterminado (l. 49) (plugins/woocommerce/templates/cart)
-
<td class="product-remove">
<?php
echo apply_filters(
'woocommerce_cart_item_remove_link',
sprintf(
'<a href="%s" class="remove" aria-label="%s" data-product_id="%s" data-product_sku="%s">×</a>',
esc_url( wc_get_cart_remove_url( $cart_item_key ) ),
esc_html__( 'Remove this item', 'woocommerce' ),
esc_attr( $_product->get_id() ),
esc_attr( $_product->get_sku() )
),
$cart_item_key
);
?>
</td>
- Pégalo en el cuerpo de la tabla de la tienda.
2) Agregar código al fichero functions.php
Está claro que la mejor solución es devolver el carrito al sitio. Pero también hay un compromiso: agregue botones para eliminar elementos en la página de pago. Por lo tanto, para hacer esto, copie y pegue el siguiente código php en el archivo functions.php del tema del sitio activo:
function speedplus_checkout_remove_product( $product_name, $cart_item, $cart_item_key ) {
if ( is_checkout() ) {
$_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
$product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
$remove_link = apply_filters( 'woocommerce_cart_item_remove_link', sprintf(
'<a href="%s" class="remove" aria-label="%s" data-product_id="%s" data-product_sku="%s">×</a>',
esc_url( WC()->cart->get_remove_url( $cart_item_key ) ),
__( 'Remove this item', 'woocommerce' ),
esc_attr( $product_id ),
esc_attr( $_product->get_sku() )
), $cart_item_key );
return '<span>' . $remove_link . '</span> <span>' . $product_name . '</span>';
}
return $product_name;
}
add_filter( 'woocommerce_cart_item_name', 'speedplus_checkout_remove_product', 10, 3 );
Conclusiones y recomendaciones
En este articulo hemos aprendido 2 formas de integrar un botón para eliminar productos en nuestra página de pagos en WOOCOMMERCE.
Si bien la primera opción funciona de maravillas editando los ficheros del plugin a nuestro criterio. Sin embargo, los cambios efectuados pueden perderse al actualizar el plugin.
La segunda opción es más sencilla de manejar porque estamos integrando codigo en nuestro archivo functions.php de nuestra plantilla de WordPress. Además, una ventaja seria implementarlo en nuestro tema hijo, con ello no habría ningún problema con las actualizaciones de la plantilla.