【问题标题】:Get Woocommerce customer order language获取 Woocommerce 客户订单语言
【发布时间】:2015-04-20 11:37:59
【问题描述】:

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

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

在其他CMS(如prestashop)中,它在订单和客户表中存储为id_lang

【问题讨论】:

  • 您需要将语言保存为订单的元数据。 WooCommerce 默认不这样做,因为默认情况下它不是多语言的。因此,检测使用的语言将取决于您使用什么插件来使您的网站成为多语言。
  • 那么让我们考虑一下最常用的多语言插件,我认为它们是 wpml 和 qtranslate。或者有一种方法可以强制 woocommerce 在每次用户从我的自定义插件下订单时存储该元值?
  • 您可以将任何您想要的数据保存为订单的元数据。
  • 只是说 WPML 已经为使用用户语言的订单保存了 postmeta。元它被称为“wpml_language”

标签: mysql wordpress woocommerce qtranslate


【解决方案1】:

在不了解您将选择哪个插件以及它如何操作的情况下,以下是您如何将一些额外数据保存到订单中。

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

【讨论】:

    【解决方案2】:

    终于解决了,两种解决方案都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'
    

    【讨论】:

      猜你喜欢
      • 2022-01-14
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 2018-01-20
      • 1970-01-01
      • 2018-03-16
      • 2019-07-22
      相关资源
      最近更新 更多