Este es el foro de soporte técnico de WPML, el plugin multilingüe de WordPress.

Todas las personas pueden leerlo pero solo los clientes de WPML pueden ingresar comentarios. El equipo de WPML responde en el foro 6 días a la semana, durante 22 horas por día.

Our next available supporter will start replying to tickets in about 0.40 hours from now. Thank you for your understanding.

This topic contains 6 respuestas, has 2 mensajes.

Last updated by Otto hace 1 año, 11 meses.

Assigned support staff: Otto.

Autor Mensajes
agosto 25, 2017 a las 4:45 pm #1351256

Art Project Group

Quiero hacer compatible mi plugin WooCommerce - APG Weight and Postcode/State/Country Shipping (https://wordpress.org/plugins/woocommerce-apg-weight-and-postcodestatecountry-shipping/) con WPML ya que he detectado un problema al usar las clases de envío.

El problema lo tengo con la función get_shipping_class(), la cual me devuelve el slug de la clase de envío, ya que al configurar el plugin se utiliza el slug del idioma predeterminado pero al realizar los cálculos de los gastos de envío se recibe el slug del idioma que se esté utilizando en ese momento.

Por ejemplo si se configura con la clase de envío "clase-de-envio" y se calculan los gastos de envío en el idioma francés la clase de envío devuelta es "clase-de-envio-fr" y lógicamente deja de hacer el cálculo correctamente.

La pregunta es simple y clara, ¿cómo puedo obtener el slug predeterminado de la clase de envío, en este caso concreto "clase-de-envio" en lugar de "clase-de-envio-fr" o "clase-de-envio-en"?

Muchas gracias de antemano.

Un saludo.

agosto 25, 2017 a las 6:19 pm #1351325

Otto
Supporter

Languages: Inglés (English ) Español (Español )

Timezone: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

Gracias por contactarte con el foro de soporte!

Si bien la pregunta es simple y clara, la respuesta no lo es tanto :). Al menos en nuestro foro de soporte.

Este tipo de consultas las canalizamos a través de nuestro progama de compatibilidad. Donde encontrarás la asistencia necesaria que tu proyecto necesita:
https://wpml.org/documentation/theme-compatibility/go-global-program/

De todos modos, te sugiero que consultes nuestros hooks:
https://wpml.org/documentation/support/wpml-coding-api/wpml-hooks-reference/#top
https://wpml.org/documentation/related-projects/woocommerce-multilingual/wcml-hooks-reference/

Una opción que puede funcionar es:
https://wpml.org/wpml-hook/wpml_switch_language/

Dime si esto te orienta en la dirección correcta por favor.

Un saludo cordial,

Otto

agosto 26, 2017 a las 6:22 am #1351502

Art Project Group

Ya revisé vuestros hooks antes de abrir el hilo 🙁

De todas formas probaré con wpml_switch_language a ver si me sirve.

Si se te ocurre algún compañero al que hacerle llegar la consulta y que me pueda dar algo de luz, aunque sea por privado, te lo agradecería. Si finalmente no lo consigo, lo siento, pero seguirá siendo NO COMPATIBLE 😉

Muchas gracias de todas formas.

Un saludo.

agosto 28, 2017 a las 11:28 am #1352287

Otto
Supporter

Languages: Inglés (English ) Español (Español )

Timezone: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

Muchas gracias.

Como te comentaba, este tipo de preguntas van a través del programa de compatibilidad, si es un plugin público como en tu caso, o de nuestros partners certificados, si es trabajo de programación personalizado, que está fuera del alcance de nuestro soporte:
http://wpml.org/documentation/support/wpml-contractors/

De todos modos, si mi sugerencia no funciona, puedo preguntar. No perdemos nada 🙂

Dime como van tus pruebas y avanzamos.

Un saludo cordial,

Otto

septiembre 6, 2017 a las 9:35 am #1361474

Art Project Group

A falta de de hacer algunas pruebas más, parece que usando este código:
if ( function_exists('icl_object_id') ) {
global $sitepress;
do_action( 'wpml_switch_language', $sitepress->get_default_language() );
}
antes de hacer la llamada a la función get_shipping_class() de WooCommerce me devuelve siempre el valor que necesito para hacer totalmente compatible mi plugin con instalaciones que usen WPML 😉

Ahora voy a ver si tendré que volver al idioma actual con:
do_action( 'wpml_switch_language', ICL_LANGUAGE_CODE );
tras haber leído la clase de envío del producto.

Muchas gracias Otto.

Un saludo.

septiembre 6, 2017 a las 11:18 am #1361692

Art Project Group

Al final se lo he añadido por si acaso, aunque realmente creo que no lo necesita.

También he actualizado WooCommerce - APG Free Postcode/State/Country Shipping para que tampoco genere problemas con las traducciones de las clases de envío, así que ahora ya puedo decir que ambos plugins son 100% compatibles con WPML y su WooCommerce Multilingual 😉

Un saludo.

septiembre 6, 2017 a las 11:21 am #1361720

Otto
Supporter

Languages: Inglés (English ) Español (Español )

Timezone: America/Argentina/Buenos_Aires (GMT-03:00)

Genial!

Me alegra que te haya servido 🙂

Un saludo cordial,

Otto