Soporte » Plugins y Hacks » Hacks » Mensaje personalizado en productos

  • Resuelto dicrivero

    (@dicrivero)


    Hola.
    Me gustaria que en la ficha de producto tuviera la occion de agregar un mensaje personalizado.

    Este tema ya esta resuelto en otro hilo de hace 4 años y dice que en fuction.php instalemos este código:

    // Primera parte crea el checkbox en la ficha de producto
    
    add_action( 'woocommerce_product_options_general_product_data', 'mk_agrega_checkbox_producto' );           
    function mk_agrega_checkbox_producto() {           
    woocommerce_wp_checkbox( array( 
    'id' => 'id_check',
    'class' => '', 
    'label' => 'Etiqueta del check'  // Texto que apareceria junto al textbox en ficha de producto.
    ) 
    );      
    }
       
    // Segunda Parte, guarda la información del checkbox via custom field
       
    add_action( 'save_post', 'mk_guarda_checkbox_en_post_meta' );
       
    function mk_guarda_checkbox_en_post_meta( $product_id ) {
        if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
            return;
        if ( isset( $_POST['id_check'] ) ) {
                update_post_meta( $product_id, 'id_check', $_POST['id_check'] );
        } else delete_post_meta( $product_id, 'id_check' );
    }
     
    // Tercera parte, incluye un condicional que mostraría el mensaje bajo el precio del producto
    // sólo si el check está marcado en la ficha de producto
       
    add_action( 'woocommerce_single_product_summary', 'mk_muestra_mensaje_checkbox', 20 );  //Cambia el hook o la prioridad para mover la posición del mensaje
       
    function mk_muestra_mensaje_checkbox() {
        global $product;     
        if ( get_post_meta( $product->get_id(), 'id_check', true ) ) {
            echo 'TU MENSAJE PERSONALIZADO';  //Este es el mensaje que aparecería
        }
    }

    URL: https://martin.click/woocommerce/insertar-mensaje-condicional-ficha-producto-woocommerce/

    Lo he instalado con el plugin «Code Snippets» y aparece error de sintaxis en la linea 7 ( ‘id’ => ‘id_check’, )`

    Bueno, es posible arreglar este código? o hay algún plugin para este menester?
    Gracias y saludos.

    • Este debate fue modificado hace 5 meses, 3 semanas por dicrivero.
    • Este debate fue modificado hace 5 meses, 2 semanas por Jose Luis. Razón: Etiquetar código
Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • Moderador Jose Luis

    (@jose64)

    Hola.

    Deberías poner el enlace al debate, el código que indicas tiene errores, si lo cambias por este otro verás que no te muestra ningún mensaje de error:

    // Primera parte crea el checkbox en la ficha de producto
    
    add_action( 'woocommerce_product_options_general_product_data', 'mk_agrega_checkbox_producto' );
    function mk_agrega_checkbox_producto() {
    woocommerce_wp_checkbox( array(
    'id' => 'id_check',
    'class' => '',
    'label' => 'Etiqueta del check' // Texto que apareceria junto al textbox en ficha de producto.
    )
    );
    }
    
    // Segunda Parte, guarda la información del checkbox via custom field
    
    add_action( 'save_post', 'mk_guarda_checkbox_en_post_meta' );
    
    function mk_guarda_checkbox_en_post_meta( $product_id ) {
    if ( defined( '‘DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
    return;
    if ( isset( $_POST['id_check'] ) ) {
    update_post_meta( $product_id, 'id_check', $_POST['id_check'] );
    } else delete_post_meta( $product_id, 'id_check' );
    }
    
    // Tercera parte, incluye un condicional que mostraría el mensaje bajo el precio del producto
    // sólo si el check está marcado en la ficha de producto
    
    add_action( 'woocommerce_single_product_summary', 'mk_muestra_mensaje_checkbox', 20 ); //Cambia el hook o la prioridad para mover la posición del mensaje
    
    function mk_muestra_mensaje_checkbox() {
    global $product;
    if ( get_post_meta( $product->get_id(), 'id_check', true ) ) {
    echo 'TU MENSAJE PERSONALIZADO'; //Este es el mensaje que aparecería
    }
    }

    Las comillas en el código generan muchos errores cuando copias y pegas, esto se debe a que las comillas pueden ser muchos tipos, apertura, cierre, dobles… cuando copias un código debes asegurarte de que las comillas estén correctamente puestas, lo más práctico es reemplazarlas todas por comillas simples, excepto en los casos que debas anidarlas.

    Pruébalo y comenta si te funciona y, por supuesto, recuerda marcar el debate como resuelto cuando así lo consideres, de esta forma nos ayudas a mantener el foro al día.

    Iniciador del debate dicrivero

    (@dicrivero)

    Gracias… funciona!

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • Debes estar registrado para responder a este debate.