Un usuario preguntó 👇
Hola. Yo estaba pensando. ¿Sería posible que su plugin también funcionara en páginas de archivo de una manera fácil? Quiero decir que usaría tu guión. En la forma en que está ahora, parece colaborar con la función de stock de Woocommerce para transportar productos con AJAX en las páginas de archivo. El problema es que esta función no funciona correctamente con los plugins de almacenamiento en caché. Y quiero, por ejemplo, que no se me redirija a una sola página de producto cuando el producto esté agotado. El script Woocoomerce AJAX lo hace de esta manera. Gracias.
(@xootix)
hace 1 año
Hola @fkoomek
Cuando el producto está agotado, la página de archivo de woocommerce debe ocultar el botón Agregar al carrito y mostrar «Agotado» en su lugar. Así es como funciona woocommerce por defecto. “Y quiero, por ejemplo, que no se me redirija a una sola página de producto cuando el producto no esté agotado”. Debe ponerse en contacto con woocommerce, esta función está relacionada con woocommerce.
Lo siento, no entiendo el problema de los «plugins de almacenamiento en caché». Agrega más detalles.
Lanzador de hilos
(@fkoomek)
hace 1 año
Lo siento, lo expliqué un poco mal … Me refiero al caso en el que un cliente intenta agregar una mayor cantidad de producto a un carrito de lo que tiene en stock. Si estoy en la página de un producto y hago clic en el botón Agregar al carrito (y no hay más productos en stock), aparece un mensaje: «No puede agregar eso a la cesta; tenemos X en stock y usted tiene X». en tu cesta ya. «Supongo que esto fue manejado por su plugin. Pero si trato de agregar un producto a una página de archivo, funciona de una manera diferente: hay un cliente en la página de archivo y haga clic en el botón Agregar al carrito. El producto se agrega a Luego haga clic en agregar al carrito nuevamente para agregar más piezas, pero no hay más piezas del producto en stock, por lo que se redirige a la página del producto con un mensaje que dice: «No puede agregar tanto. con el cesta: tenemos 1 en stock y ya tienes 1 en tu cesta «. Si la página del producto no se ha almacenado en caché antes, ese mensaje se almacenará en caché. Además, el mensaje a veces aparece dos veces. Entonces pensé que la solución sería poner un producto en la página de archivo y no tener más piezas en stock, solo mostrar una ventana emergente (como la que aparece en la página del producto) y eso manejaría Ajax, por lo que no hay almacenamiento en caché. Ver la pregunta
https://test.liberlapidum.com/wp-content/uploads/issue.gif
(@xootix)
hace 1 año
Hola @fkoomek
Como dije, woocommerce maneja completamente el comportamiento anterior. La funcionalidad del plugin Ajax es solo para la página del producto. Un carrito lateral no puede obtener un error en la página de archivo. Todo lo que puedo hacer es proporcionarle un fragmento que evita la actualización de la página y abre la barra lateral. Aunque no habrá visualización de errores. Agregue esto a su functions.php
add_filter( 'woocommerce_cart_redirect_after_error', function( $link, $product_id ){
wc_clear_notices();
return '';
},10, 2);
Lanzador de hilos
(@fkoomek)
hace 1 año
Muchas gracias por tu ayuda. Te lo agradezco 🙂 Probé tu botón, pero sin el mensaje, no es el mejor. ¿Cómo puedo deshabilitar Ajax en páginas de archivo con su plugin activado? Cuando lo desactivo en los sitios de Woocommerce, incluso entonces el Ajax permanece en las páginas de archivo. Está habilitado por su plugin.
Lanzador de hilos
(@fkoomek)
hace 1 año
Hola. Entonces, según el botón proporcionado, lo usé así:
add_filter( 'woocommerce_cart_redirect_after_error', function( $link, $product_id ){
$get_permalink = get_permalink( $product_id ) . '?error_notice';
return $get_permalink;
},10, 2);
He agregado un cable de consulta a una URL cuando hay una notificación de error y evito que se aloje este cable de consulta. Así que ahora ya no se presenta un producto con una notificación de error. Parece estar funcionando bien. ¿Es este un buen enfoque?
Esta respuesta fue modificada hace 1 año por. Esta respuesta fue modificada hace 1 año por. Esta respuesta fue modificada hace 1 año por.
(@xootix)
hace 1 año
Hola @fkoomek
Si desea deshabilitar ajax en la página de archivo, vaya a la configuración de woocommerce y desmarque «Ajax agregar al carrito». Si todavía ve la función ajax, algo más está sucediendo, no nuestro plugin. «Ajax añadir al carrito» en el sitio del carrito lateral es solo para una página de producto. No estoy seguro, como agregar esto . '?error_notice'
resolverá su problema de almacenamiento en caché. Bien por ti, si funciona. 🙂
Lanzador de hilos
(@fkoomek)
hace 1 año
Bueno, antes de eso, la URL del producto con una notificación de error era la misma que la URL del producto. Por lo tanto, si la página del producto aún no se había almacenado en caché, existía un pequeño riesgo de que se almacenara en caché con ese error. Entonces, ahora que agregué ese cable de consulta y evité que se almacenara en caché, la página del producto con una notificación de error no se pudo almacenar en caché.
De todos modos, creo que su plugin afecta en gran medida el archivo de Ajax. Permanece allí incluso cuando está desactivado en Woocommerce. Después de desactivar su plugin, se disuelve. Intentalo. 🙂 Gracias por su apoyo
Esta respuesta fue modificada hace 1 año por.
(@xootix)
hace 1 año
Bueno saber.
Si realizó algún cambio en la plantilla de su página de archivo, como agregar un campo de cantidad, se verá como una página de producto.
¿Solucionó tu problema??
0 / 0