获取 Woocommerce 客户订单语言
Get Woocommerce customer order language
我正在为 woocommerce
开发一个补充插件。
我有一个获取所有订单和客户信息的 sql 请求,但我需要从订单中获取语言。
我如何检测客户下订单时使用的语言?它在某处注册了吗?
在其他 CMS
中,例如 prestashop
,它在订单和客户表中存储为 id_lang
。
在不了解您将选择哪个插件及其运作方式的情况下,这里是您如何将一些额外数据保存到订单中的方法。
// save the extra field when checkout is processed
function kia_save_extra_checkout_fields( $order_id, $posted ){
$language = detect_language_with_your_plugin_of_choice() ? detect_language_with_your_plugin_of_choice() : "en";
update_post_meta( $order_id, '_order_language', $language );
}
add_action( 'woocommerce_checkout_update_order_meta', 'kia_save_extra_checkout_fields', 10, 2 );
而且因为我有一次尝试使用 WPML 的时候很糟糕,也许可以考虑看看 Multilingual Press。
终于解决了,两种方案都OK
使用 WPML 插件,您可以使用 meta_key = wpml_language
获取 table postmeta
中的值
刚刚在我的 SQL 查询中添加了左连接:
SELECT O.ID as id_order, O.post_date_gmt as date, M.meta_value as email, M2.meta_value as firstname, M3.meta_value as lastname, M4.meta_value as iso_code
FROM ".$prefix."posts O
LEFT JOIN ".$prefix."postmeta M ON M.post_id = O.ID AND M.meta_key = '_billing_email'
LEFT JOIN ".$prefix."postmeta M2 ON M2.post_id = O.ID AND M2.meta_key = '_billing_first_name'
LEFT JOIN ".$prefix."postmeta M3 ON M3.post_id = O.ID AND M3.meta_key = '_billing_last_name'
LEFT JOIN ".$prefix."postmeta M4 ON M3.post_id = O.ID AND M4.meta_key = 'wpml_language'
WHERE O.post_type = 'shop_order' AND O.post_status = 'wc-completed'
我正在为 woocommerce
开发一个补充插件。
我有一个获取所有订单和客户信息的 sql 请求,但我需要从订单中获取语言。
我如何检测客户下订单时使用的语言?它在某处注册了吗?
在其他 CMS
中,例如 prestashop
,它在订单和客户表中存储为 id_lang
。
在不了解您将选择哪个插件及其运作方式的情况下,这里是您如何将一些额外数据保存到订单中的方法。
// save the extra field when checkout is processed
function kia_save_extra_checkout_fields( $order_id, $posted ){
$language = detect_language_with_your_plugin_of_choice() ? detect_language_with_your_plugin_of_choice() : "en";
update_post_meta( $order_id, '_order_language', $language );
}
add_action( 'woocommerce_checkout_update_order_meta', 'kia_save_extra_checkout_fields', 10, 2 );
而且因为我有一次尝试使用 WPML 的时候很糟糕,也许可以考虑看看 Multilingual Press。
终于解决了,两种方案都OK
使用 WPML 插件,您可以使用 meta_key = wpml_language
postmeta
中的值
刚刚在我的 SQL 查询中添加了左连接:
SELECT O.ID as id_order, O.post_date_gmt as date, M.meta_value as email, M2.meta_value as firstname, M3.meta_value as lastname, M4.meta_value as iso_code
FROM ".$prefix."posts O
LEFT JOIN ".$prefix."postmeta M ON M.post_id = O.ID AND M.meta_key = '_billing_email'
LEFT JOIN ".$prefix."postmeta M2 ON M2.post_id = O.ID AND M2.meta_key = '_billing_first_name'
LEFT JOIN ".$prefix."postmeta M3 ON M3.post_id = O.ID AND M3.meta_key = '_billing_last_name'
LEFT JOIN ".$prefix."postmeta M4 ON M3.post_id = O.ID AND M4.meta_key = 'wpml_language'
WHERE O.post_type = 'shop_order' AND O.post_status = 'wc-completed'