es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Carácter especial alemán no está funcionando en el esquema de WordPress.

Estoy utilizando el siguiente filtro para añadir información adicional relacionada con Schema a mi producto.
Pero para algunos caracteres alemanes, se convierten en código numérico.

He añadido un comentario, en ese formulario los datos reales están almacenados en campos personalizados.
y he añadido una captura de pantalla, que convierte los datos reales en forma numérica.

¿Cómo lo soluciono?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para solucionar el problema de los caracteres alemanes que se convierten en código numérico, debe utilizar la función html_entity_decode() en lugar de utf8_decode() al recuperar los valores de los campos personalizados.

    Aquí está un fragmento de código actualizado:

    add_filter( 'woocommerce_structured_data_product', 'filter__woocommerce_structured_data_product', 20, 2 );
    
    function filter__woocommerce_structured_data_product( $schema, $product ) {
        global $post;
    
        $shipping_val = html_entity_decode( get_post_meta( $post->ID, 'pro_shipping', true ) );
        // Funciona: CHF 10.-
        $colour_val = html_entity_decode( get_post_meta( $post->ID, 'pro_color', true ) );
        // Funciona: Aussen: rosa und blau (metallisch), Bordüre: grün, Innen: lila
    
        $schema['shipping'] = array(
            '@type'  => 'Shipping',
            'name'   => $shipping_val,
        );
    
        $schema['colour'] = array(
            '@type'  => 'Colour',
            'name'   => $colour_val,
        );
    
        return $schema;
    }
    

    Usar html_entity_decode() convertirá los códigos numéricos de vuelta a sus caracteres originales. Esto debería permitir que se muestre correctamente la información relacionada con el esquema para productos con caracteres alemanes.

Comments are closed.