获取Woocommerce客户订购语言

时间:2015-04-20 11:37:59

标签: mysql wordpress woocommerce qtranslate

我正在为woocommerce开发一个补充插件。 我有一个sql请求获取所有订单和客户信息,但我需要从订单中获取语言。

如何在订单时检测到语言是否正在使用客户?它是在某处注册的吗?

CMS之类的其他prestashop中,它在订单和客户表格中存储为id_lang

2 个答案:

答案 0 :(得分:0)

如果没有进入您将选择的插件及其操作方式,您可以在此处将一些额外数据保存到订单中。

// 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

答案 1 :(得分:0)

最后解决了,两种解决方案都没问题。

使用WPML插件,您可以使用postmeta

获取表meta_key = wpml_language中的值

在我的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'