Avisos
Vaciar todo

WPFront User Role Editor modificar precios por rol masivamente  

 
Ricardo
 Ricardo
Reputable Member

Los usuarios de la web tienen asignado un ROL, esto lo hago desde el plugin WPFront User Role Editor

este plugin me añade debajo de cada producto lo que veis en la imagen

para que pueda poner el precio normal y el precio con descuento para el rol Tienda 1 y Tienda 2

El problema es que quiero modificar masivamente esos precios y al descargar el CSV desde productos / Exportar estos datos no aparecen

alguna idea de donde pueden estar?

estoy exportando así

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 11/11/2018 7:00 pm
Luis Mendez Alejo
 Luis Mendez Alejo
Miembro Admin

Hola Ricardo,

Al ser un plugin que no guarda relación directa con WooCommerce, aunque implemente funcionalidades de precios para este carrito, es normal que WooCommerce no contemple estos campos en las opciones de Importar/Exportas a XML/CSV.

Desconozco si este plugin tiene dicha funcionalidad o si el autor del mismo lo ha contemplado en el código. No obstante siempre podrás exportar un CSV de tu WordPress, desde Herramientas, y luego en Excel montarte una hoja con los campos y delimitadores correspondientes para que después puedas hacer esa importación de precios (o lo que corresponda) de forma masiva.

Desconozco cuantos productos son los afectados, pero en ocasiones es mayor trabajo hacer un CSV y una importación (que puede fallar por muchas partes y afectar a la Tienda en producción y a los precios actuales y campos de Productos, siendo más recomendable aplicar manualmente los cambios de precios, por muchos productos que sean y con ello garantizarte que no habrá errores en el proceso.

Saludos

ResponderCitar
Respondido : 11/11/2018 7:14 pm

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

Ricardo
 Ricardo
Reputable Member

un a uno es imposible ya que son más de 3000 artículos

desde archivos exportar he descargado un XML y he encontrado esta linea

en un producto que tenía para el rol TIENDA1 precio normal 999 y precio rebajado 666
y para el mismo producto como rol TIENDA 2 precio normal 888 y precio rebajado 777

y aquí ya me pierdo, porque aunque cree un excel con estas 5 columnas

SKU para saber a qué producto corresponde
TIENDA 1 precio normal
TIENDA 1 precio rebajado
TIENDA 2 precio normal
TIENDA 2 precio rebajado

luego al importarlo, no se a que columna corresponde cada linea

para la linea del SKU si se que poniendo SKU la detecta
pero las otras han de ser Meta:??????

ResponderCitar
Respondido : 11/11/2018 7:50 pm
Luis Mendez Alejo
 Luis Mendez Alejo
Miembro Admin

Hola Ricardo,

Es necesario ver una captura de los campos que el importado que estás usando te muestra como sustitutivos.

Supongo que no te permite customizar campos para importar ¿que plugin de Importar estás usando? (hay muchos) 😉

Saludos

ResponderCitar
Respondido : 11/11/2018 8:47 pm

Ricardo
 Ricardo
Reputable Member

exporto e importo desde productos, creo que ya venía y no es ningún plugin que yo haya instalado

te adjunto 3 pantallazos de las opciones que me da y verás que en ninguna aparecen esos campos

lo que está claro que en los 2 o 3 productos que lo he puesto a mano funciona perfectamente apareciendo el precio correcto según el rol del usuario, por lo que esos datos están guardado en alguna parte

falta saber donde para poder editarlos
he mirado dentro de la carpeta del plugin y no veo nada y necesito para esta semana que los roles TIENDA1 y TIENDA2 vean los precios correctamente.

Gracias

ResponderCitar
Respondido : 12/11/2018 11:45 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola.

Con las opciones de exportar que tiene woocommerce por defecto no podrás exportar por roles.

Tienes el siguiente plugin:
-> https://wordpress.org/plugins/woocommerce-exporter/

En su versión premiun si que permite exportar por roles, lo que no te se decir si es compatible con WPFront

Un saludo

ResponderCitar
Respondido : 12/11/2018 12:22 pm

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

Ricardo
 Ricardo
Reputable Member

he encontrado la manera de hacerlo por código insertando esto dentro de functions.php

// Aplica un precio especial dependiento del tipo de usuario
add_filter( 'woocommerce_get_price', 'aplica_precio_especial', 10, 2);
function aplica_precio_especial( $price, $product ) {
    
    if (!is_user_logged_in()) return $price;

    // Listado de productos con precio especial
    $product_list = array();

    // % Descuento a aplicar
    $discount = 50;

    // Comprueba si el producto actual pertenece a la lista
    if( in_array( $product->id, $product_list ) || empty( $product_list ) ) {

        // Comprueba si el usuario tiene precio especial
        if( usuario_con_precio_especial( 'tienda1' ) ){
            
            $price = $price * ( 100 - $discount ) / 100;
        }
    }
    return $price;
}

function usuario_con_precio_especial( $role = '',$user_id = null ){

    if( is_numeric( $user_id ) ){

        $user = get_user_by( 'id', $user_id );
    }else{

        $user = wp_get_current_user();
    }

    if( empty( $user ) ){
        
        return false;
    }
    
    return in_array( $role, (array) $user->roles );
}


El problema es que esto me hace un 50% de DTO al ROL tienda1 y necesito otros descuentos para otros roles

He intentado cambiar el código donde pone tienda1 poner tienda 2 y donde pone 50 poner otro descuento y la web deja de funcionar porque se repiten funciones

Podrias decirme el codigo correcto para asignar 3 descuentos a 3 roles?

Gracias

ResponderCitar
Respondido : 13/11/2018 6:08 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

En la primera parte del código podrías probar agregando más condiciones

function aplica_precio_especial( $price, $product ) {
 
    if (!is_user_logged_in()) return $price;
 
    // Listado de productos con precio especial
    $product_list = array();
 
    // % Descuento a aplicar
    $discount = 50;
 
    // Comprueba si el producto actual pertenece a la lista
    if( in_array( $product->id, $product_list ) || empty( $product_list ) ) {
 
        // Comprueba si el usuario tiene precio especial
        if( usuario_con_precio_especial( 'tienda1' ) ){
     $discount = 50;
            $price = $price * ( 100 - $discount ) / 100;
        }

        // Comprueba si el usuario tiene precio especial
        if( usuario_con_precio_especial( 'tienda2' ) ){
     $discount = 30;
            $price = $price * ( 100 - $discount ) / 100;
        }

    }
    return $price;
}

He agregado para tiend2, puedes repetir de manera similar para tienda3, etc.
Ten en cuenta que estoy agregando el descuento dentro de cada condición ya que este varía

Saludos.

ResponderCitar
Respondido : 13/11/2018 8:50 pm

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