Avisos
Vaciar todo

Hosting WordPress 70% dto Dominios promo

Productos con portes gratis  

 
JOSE LUIS
 JOSE LUIS
Prominent Member

Hola, intento poner la forma de pago portes gratis en ciertos productos.
Tengo instalado un plugin para que los portes sean gratuitos a partir de cierta cantidad de dinero y me funciona bien.
Ahora he seguido estos pasos:
https://rombomarketing.online/blog/woocommerce/configurar-envio-gratuito-por-productos-en-woocommerce
Pero algo he debido hacer mal, porque solo me funciona bien si compro el producto que ha puesto en la categoría de productos gratuitos. Si compro otro me da la posibilidad de elegir las dos formas de envío.
Producto en la categoría "portes gratis"

Otro producto

Creación de la forma de envío gratis

Configuración de la forma de envío

Configuración de la categoría

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 01/08/2019 6:01 pm
Bulmaro
 Bulmaro
Soporte CMS Webempresa Moderator

Hola José,

¿Instalaste y configuraste el plugin que hacen mencion en el tutorial, llamado Wooocommerce Advanced Free Shipping?

Pero algo he debido hacer mal, porque solo me funciona bien si compro el producto que ha puesto en la categoría de productos gratuitos. Si compro otro me da la posibilidad de elegir las dos formas de envío.

Este escenario lo plantea el autor del tutorial que estas citando y tiene razon, sucede por que no ha sido configurado el envío gratuito avanzado.

Revisa el tutorial nuevamente y con calma y verás que pueded solucionarlo.

Saludos.

ResponderCitar
Respondido : 01/08/2019 8:08 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

JOSE LUIS
 JOSE LUIS
Prominent Member

Hola! Sí que lo configuré. Lo hice así:

ResponderCitar
Respondido : 02/08/2019 5:17 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Jose Luis.

Añade lo siguiente al archivo functions.php

/* Only one single product may be in the cart */

add_action( 'wafs_match_condition_single_product', 'wafs_match_condition_single_product', 10, 3 );

/* Match single category
 *
 * @param bool $match
 * @param string $operator
 * @param mixed $value
 * @return bool
 */
function wafs_match_condition_single_product( $match, $operator, $value ) {

    global $woocommerce;
    
    $match = true;      
    if ( ! isset( $woocommerce->cart ) || empty( $woocommerce->cart->cart_contents ) ) return;
    

    if ( '==' == $operator ) :
    
        foreach ( $woocommerce->cart->cart_contents as $product ) :
            if ( $product['product_id'] != $value ) :
                $match = false;
            endif;
        endforeach;
        
    elseif ( '!=' == $operator ) :
        
        foreach ( $woocommerce->cart->cart_contents as $product ) :
            if ( $product['product_id'] == $value ) :
                $match = false;
            endif;
        endforeach;
        
    endif;
        
    return $match;

}

add_filter( 'wafs_conditions', 'wafs_conditions_add_single_product', 10, 1 );
function wafs_conditions_add_single_product( $conditions ) {
    
    $conditions['Product']['single_product'] = 'Only product in cart';
    
    return $conditions;
    
}

add_filter( 'wafs_values', 'wafs_values_add_single_product', 10, 2 );
function wafs_values_add_single_product( $values, $condition ) {
    
    switch ( $condition ) {

        case 'single_product':
        
            $values['field'] = 'select';

            $products = get_posts( array( 'posts_per_page' => '-1', 'post_type' => 'product', 'order' => 'asc', 'orderby' => 'title' ) );
            foreach ( $products as $product ) :
                $values['options'][$product->ID ] = $product->post_title;
            endforeach;


        break;
    
    }
    
    return $values;
    
}

.- Una vez añadido, accede a la configuración de la regla de la regla de envío gratuito Avanzado y veras que tienes una nueva opción " Only product in cart ", tienes que seleccionar esa opción en vez de " Contiene producto "

Tienes mas información en este enlace:
-> https://woodemia.com/aplicar-envio-gratis-a-ciertos-productos-en-woocommerce/

Un saludo

ResponderCitar
Respondido : 02/08/2019 5:59 pm

Cursos Gratuitos WordPress

JOSE LUIS
 JOSE LUIS
Prominent Member

Dame la ruta para llegar a "functions.php"

ResponderCitar
Respondido : 12/08/2019 1:59 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Jose luis.

Está dentro de la carpeta de tu plantilla.
.- wp-content -> Templates -> tu_plantilla -> functions.php

Nota: recuerda descargar una copia del archivo antes de la modificación para tener el original.

Un saludo

ResponderCitar
Respondido : 12/08/2019 2:10 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

JOSE LUIS
 JOSE LUIS
Prominent Member

/home/sumincaw/public_html/wp-content/themes/Divi/functions.php

AQUÏ?

ResponderCitar
Respondido : 12/08/2019 2:31 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Jose Luis.

Si, por lo que veo esa tiene que ser la ruta, al final del archivo añades el código anterior.
Una vez añadido veras qu etienes una nueva opción en al configuracion del transporte gratuito.

Un saludo

ResponderCitar
Respondido : 12/08/2019 2:53 pm

JOSE LUIS
 JOSE LUIS
Prominent Member

Hola de nuevo, ya lo tengo. Sería posible que esto pudiese ser de otra forma? Por ejemplo que se pudiese hacer desde la ficha del producto? por ejemplo que en el desplegable de clase de envío se pudiese elegir la opción de portes gratis

ResponderCitar
Respondido : 19/08/2019 12:16 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Jose luis.

Por defecto ese el comportamiento del plugin, tendrias que modificar el código del plugin para que se muestre como indicas y eso ya es un poco más complicado.

Un saludo

ResponderCitar
Respondido : 19/08/2019 1:14 pm

wpdoctor-revisa-la-salud-de-tu-wordpress