• Resuelto josemanuelque

    (@josemanuelqeu)


    // Agrega un checkbox en la pestaña general de la página de edición del 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' => 'Solo recoger en tienda'  //Cambia la etiqueta del checkbox
    )
    );
    }
    
    // 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' );
    }
    
    // Muestra el mensaje solo 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';  //Cambia tu mensaje
        }
    }

    Hola ,amigos, tengo el siguiente problema, que seguro será bastante sencillo de resolver para vosotros, espero me podais ayudar.

    error de sintaxis en la siguiente línea: 'id' => 'id_check',

    Syntax error, unexpected '=' expecting ')'

    Muchas gracias de antemano por vuestro tiempo.

    Saludos.

    • Este debate fue modificado hace 3 años, 4 meses por jose64. Razón: Etiquetar código
Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)
  • Iniciador del debate josemanuelque

    (@josemanuelqeu)

    Perdón este es el código original:

    // Agrega un checkbox en la pestaña general de la página de edición del 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'  //Cambia la etiqueta del checkbox
    )
    );
    }
    
    // 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' );
    }
    
    // Muestra el mensaje solo 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';  //Cambia tu mensaje
        }
    }
    • Esta respuesta fue modificada hace 3 años, 4 meses por jose64. Razón: Etiquetar código
    Moderador jose64

    (@jose64)

    Hola.

    Acabo de probar el código y no me genera ningún error, el problema son los caracteres > que están reemplazados, seguramente los copiaste mal de la fuente original, copia del código etiquetado y reemplaza. Cuando añades código debes usar la etiqueta CODE para evitar que se procese y aparezca modificado.

    Coméntanos si tienes alguna duda y, por favor, recuerda cerrar el debate marcándolo como resuelto, así nos ayudas a mantener el foro al día.

    Iniciador del debate josemanuelque

    (@josemanuelqeu)

    Gracias por tu respuesta José Luis, pero en el articulo original está asi:
    https://martin.click/woocommerce/insertar-mensaje-condicional-ficha-producto-woocommerce/

    He mirado desde el inspector de google para ver si el código html estaba bien escrito, pero sale igual. No se se a que caracteres reemplaza >

    Iniciador del debate josemanuelque

    (@josemanuelqeu)

    ah vale ya te he entendio en lugar de > aparece >

    Iniciador del debate josemanuelque

    (@josemanuelqeu)

    Muchas gracias José Luis, he sustituido también los caracteres & aunque sigue habiendo algo que no va bien porque no termina de funcionar el código.

    Iniciador del debate josemanuelque

    (@josemanuelqeu)

    Por fin solucionado, muchas gracias por todo.
    Un saludo.

Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)
  • El debate ‘Syntax error, unexpected ‘=’ expecting ‘)’’ está cerrado a nuevas respuestas.