Respuestas de foro creadas

Viendo 15 respuestas - de la 1 a la 15 (de un total de 18)
  • Iniciador del debate miguelapps

    (@miguelappslaparra)

    He podido solucionar el problema sin añadir más plugin pesados a mi sitio web, con la siguiente función:

    function skip_logout_confirmation() {
    global $wp;
    if ( isset( $wp->query_vars['customer-logout'] ) ) {
        wp_redirect( str_replace( '&', '&', wp_logout_url( home_url() ) ) );
        exit;
      }
    }
    add_action( 'template_redirect', 'skip_logout_confirmation' );
    miguelapps

    (@miguelappslaparra)

    ¿ Puede ser que te este ocurriendo eso porque los productos no tienen precio ?
    Haz la prueba y ponles precio, seguramente esto cambie

    Iniciador del debate miguelapps

    (@miguelappslaparra)

    He podido solucionar el problema sin añadir más plugin pesados a mi sitio web, con la siguiente función:

    function skip_logout_confirmation() {
    global $wp;
    if ( isset( $wp->query_vars['customer-logout'] ) ) {
        wp_redirect( str_replace( '&', '&', wp_logout_url( home_url() ) ) );
        exit;
      }
    }
    add_action( 'template_redirect', 'skip_logout_confirmation' );
    Iniciador del debate miguelapps

    (@miguelappslaparra)

    Finalmente la manera más rápida que encontré para hacer esto fue exportando los productos, editando el » Numero de Orden» (pueden ver la captura de pantalla ) en el archivo CSV de todos ellos según el orden deseado.
    Una vez cambiado el » Numero de Orden» en todos los productos, importe de nuevo el CSV y CONSEGUIDO

    • Esta respuesta fue modificada hace 2 años, 3 meses por miguelapps.
    miguelapps

    (@miguelappslaparra)

    Puedes hacerlo con los Hooks de WooCoommmerce.
    hace poco tuve este problema y lo resolvi sin ningún complemente, unicamente con código.
    Exactamente no es lo que yo tengo, ya que he añadido un texto y una imagen, pero eso ya juegas tu con ello, simplemente con los datos de hooks , y un poco de CSS, puedes cambiar la posición de estos elementos a tu antojo.

    En este enlace veras como manejar los hook (Ganchos) de WooCommerce

    Primero crearía un metabox en la página de producto:

    // Registramos el Metabox
    function custom_product_metabox(){
    
        // Memberships Metabox
        add_meta_box( 
            'product-custom-settings', 
            __( 'Producto', 'textdomain' ), 
            'custom_product_callback', 
            'product' 
        );
    
    }
    add_action( 'add_meta_boxes', 'custom_product_metabox' )

    Luego crearía los campos a la pagina de de cada productos para el metabox:
    Con este yo he añadido una imagen y un texto, el cual puedes añadir uno diferente a cada productos

    // Agregamos los campos
    function custom_product_callback(){
        
        $screen = get_current_screen();
        if ( $screen->action !== 'add' ) :
    
            global $post;
            $post_id = $post->ID;
    
            $logo = get_post_meta( $post_id, 'ct_product_logo', true );
            $texto = get_post_meta( $post_id, 'ct_product_title', true );
    
        else :
    
            $logo = '';
            $texto =  '';
    
        endif;
    
        // Logo
        echo '<div class="trn-form-control">';
        echo '<div class="trn-row">';
        echo '<div class="trn-col-2"><label>Logo</label></div>';
        echo '<div class="trn-col-10">';
        echo '<input type="text" id="custom-product-logo" name="custom-product-logo" value="' . $logo . '">';
        echo '</div>';
        echo '</div>';
        echo '</div>';
    
        // Titulo
        echo '<div class="trn-form-control">';
        echo '<div class="trn-row">';
        echo '<div class="trn-col-2"><label>Titulo</label></div>';
        echo '<div class="trn-col-10">';
        echo '<input type="text" id="custom-product-title" name="custom-product-title" value="' . $texto . '">';
        echo '</div>';
        echo '</div>';
        echo '</div>';
    
    }

    Y finalmente con la ayuda de los hook , muestras estos detalles en el producto.
    Como veras en la documentación, puedes cambiar de posición , y luego personalizar.

    Suerte

    // Mostramos los datos
    function show_custom_product_data(){
    
        global $product;
        $post_id = $product->get_id();
    
        $logo = get_post_meta( $post_id, 'ct_product_logo', true );
        $texto = get_post_meta( $post_id, 'ct_product_title', true );
    
        if ( $logo ) :
            echo '<img class="your-class" src="' . $logo . '">';
        endif;
    
        if ( $texto ) :
            echo '<p class="your-p-class">' . $texto . '<p>';
        endif;
    
    }
    add_action( 'woocommerce_after_shop_loop_item_title', 'show_custom_product_data' );
    Iniciador del debate miguelapps

    (@miguelappslaparra)

    Bueno, pues ya veremos como lo consigo, por el momento sigo utilizando ese complemento para añadir precios de mayorista.
    El problema esta en WooCommerce que no permite dejar el campo del precio vacío.
    Bueno, si utilizo uno de sus Extensiones de pago si que me lo permitiria

    Iniciador del debate miguelapps

    (@miguelappslaparra)

    Con la ayuda de esta documentación, he conseguido hacer lo que buscaba.
    Gracias @jose64

    • Esta respuesta fue modificada hace 2 años, 4 meses por miguelapps.
    Iniciador del debate miguelapps

    (@miguelappslaparra)

    Gracias por su incondicional apoyo señor @jose64 y disculpa la demora en responder.
    Ya probe ese complemento, la versión gratis no permite hacer lo que necesito.
    Únicamente te permite ocultar un solo precio

    • Esta respuesta fue modificada hace 2 años, 4 meses por miguelapps.
    Iniciador del debate miguelapps

    (@miguelappslaparra)

    Gracias por su rápida respuesta @jose64
    Independientemente del plugin que utilice, en este caso es WooCommerce Wholesale Prices , esto es cosa de WooCommerce, ya que no permite dejar el campo de Precio Normal vacío.
    Ese plugin me permite añadir un nuevo campo de precios y con una función que tengo, muestro un precio u otro, pero siempre y cuando este completo el campo de Precio Normal
    Ocurre lo mismo si quieres añadir el Precio Rebajado y dejar el Precio Normal en blanco, los productos no mostraran ningún precio, y por supuesto, desaparece el botón de Añadir al Carrito
    Como digo, el complemento tiene la funcionalidad de añadir un campo nuevo para otros precios, pero no funciona bien porque si dejo vacío este campo, esos productos no funcionan.
    Este plugin tiene la funcionalidad en la versión premium de eliminar el producto dependiendo que roles de usuario, pero yo necesito que el producto este siempre visible, aunque los usuarios minoristas no puedan comprarlo, para ellos si que debe estar el precio vacío y y no tener el botón de añadir al Carrito

    Espero explicar bien las necesidades que tenemos
    Gracias

    Iniciador del debate miguelapps

    (@miguelappslaparra)

    Encontre una solución pasajera, ya que el error estaba en la actualización de otro plugin, Contact Form 7
    Para solucionarlo, degrade el complemento Contact Form 7 a una versión anterior 5.6.4 y todo vuelve a funcionar en español.
    Comunicaré esto a los creadores del Formulario de contacto 7, pero creo que los creadores de WooCommerce también deberían saberlo.
    espero que esto ayude
    Me gustaría que este debate permaneciera abierto hasta que re corrigiera el error o se solucione de una forma oficial

    Iniciador del debate miguelapps

    (@miguelappslaparra)

    Gracias @algato333 , llevo dias dando vueltas y encontre algo que podia utilizar.
    Realmente yo necesito es añadir un tipo de instrucciones de los productos, las cuales son genéricas para casi todos ellos.

    Buscando di con documentación de WooCommerce sobre las pestañas, las cuales tambien se pueden añadir desde Theme Options / WooCommerce / Tabs
    UNicamente, no me permite añadir el texto como yo lo necesito, con el html que quiero, ya que se muestra el texto en forma de párrafo, y yo necesito que sea, como he dicho, una lista de instrucciones.

    Sigo dando vueltas, y seguire hasta lo consiga.
    Te muestro la documentación a la que me refiero aquí, ya que con pocas lineas de código, puedes añadir mucha información a los productos.
    Gracias

    Iniciador del debate miguelapps

    (@miguelappslaparra)

    Buenas.
    Pues revise el debate señor @jose64 , creo que podemos darle por cerrado.
    Finalmente he encontrado algo que puedo servir para mi pretensiones.
    Es un plugin gratuito con versión premium, con la que yo voy a funcionar por el momento.
    Se llama Wholesale Suite – WooCommerce Wholesale.
    Debo decir, que te crea un rool para mayoristas en que añadir un precio rebajado.
    En este caso es precio fijo, en la versión Premium tienes funcionalidades para cambiar el precio en porcentaje, etc…
    Tambien tuve que incluir una función para cambiar el texto detrás del precio dependiendo del rool del usuario.
    Se la dejo por aqui

    Gracias a los colaboradores que tuve, me motivaron en mi búsqueda.
    Gracias @kallookoo y a @jose64 que siempre esta dispuesto

    function my_get_current_user_roles() {
        if( is_user_logged_in() ) {
            $user = wp_get_current_user();
            $roles = ( array ) $user->roles;
            return $roles; // This will returns an array
        } else {
            return  array();
        }
    }
    
    function custom_price_message( $price ) { 
        global $post; 
        $product_id = $post->ID; 
        $roles = my_get_current_user_roles();
        $textafter = "";
        if(!empty($roles)) { 
            if (in_array("Wholesale Customer", $roles)) {
                $textafter = 'P.V.M.'; //texto que vamos agregar 
            }
            if (in_array("customer", $roles)) {
                $textafter = 'P.V.P.'; //texto que vamos agregar 
            }
        }
        else{
            $textafter = ' P.V.P.'; // Or whatever you want
        }
        return $price . '' . $textafter . ''; //class textafter para el  
    } 
    add_filter('woocommerce_get_price_html', 'custom_price_message');
    • Esta respuesta fue modificada hace 2 años, 5 meses por miguelapps.
    Iniciador del debate miguelapps

    (@miguelappslaparra)

    Gracias @jose64 .
    He visto varios plugin premium que por ahora no tengo intención de utilizar.
    Precios de productos por roles, no lo vi aún.
    Déjame revisar y hos digo los resultado, unicamente estoy esperando si alguien daba más ideas. Pero ya hace dias que hice la pregunta y no recibo respuestas útiles. Déjame ver tu propuesta.
    Gracias

    Iniciador del debate miguelapps

    (@miguelappslaparra)

    Claro, esta función es para modificar el prefijo que lleva el precio dependiendo del rool de usuario.
    Creo que hemos encontrado un Plugin que podría valer para mis necesidades.
    Estoy haciendo algunas pruebas, pronto te pido tu opinión @kallookoo a ver que me aconsejas

    • Esta respuesta fue modificada hace 2 años, 5 meses por miguelapps.
    Iniciador del debate miguelapps

    (@miguelappslaparra)

    Gracias de nuevo @kallookoo . me estas motivando a coger un camino que en principio no queria (php) pero que por necesidad estoy empezando a descubrí y me esta gustando.
    Claro que esto llevara su tiempo, y ahora necesito crear estas funciones.
    He visto plugin pero son Premium.
    Un amigo me a echo una función con la que poder empezar, partiendo de un articulo que encontro:

    function my_get_current_user_roles() {
      if( is_user_logged_in() ) {
        $user = wp_get_current_user();
        $roles = ( array ) $user->roles;
        return $roles; // This will returns an array
      } else {
        return array();
      }
    }
    
    function custom_price_message( $price ) { 
     global $post; 
     $product_id = $post->ID; 
     $roles = my_get_current_user_roles();
     $textafter = "";
     if(!empty($roles)) { 
    	if (in_array("TYPE_ROLE_1", $roles)) {
    		$textafter = 'TEXT_TYPE_ROLE_1'; //texto que vamos agregar 
    	}
    	if (in_array("TYPE_ROLE_2", $roles)) {
    		$textafter = 'TEXT_TYPE_ROLE_2'; //texto que vamos agregar 
    	}
     } 
     return $price . '' . $textafter . ''; //class textafter para el  
    } 
    add_filter('woocommerce_get_price_html', 'custom_price_message');
    • Esta respuesta fue modificada hace 2 años, 5 meses por miguelapps.
Viendo 15 respuestas - de la 1 a la 15 (de un total de 18)