【问题标题】:Get order meta data on WooCommerce email when order Id is not available当订单 ID 不可用时,在 WooCommerce 电子邮件上获取订单元数据
【发布时间】:2019-09-07 23:14:23
【问题描述】:

我正在尝试提取添加到 WooCommerce 结帐表单的自定义字段的订单元数据。我在一个 PHP 文件中执行此操作,该文件用于将自定义部分添加到 WooCommerce 发送给客户的订单确认电子邮件中(即订单处理的最后阶段)。

为了做到这一点,我正在尝试使用带有以下代码的 WC_Order 类:

$my_var = get_post_meta( $order_id, 'custom_field_meta_key', true );

但是,这种方法行不通。我意识到“order_id”变量在 PHP 页面中不可用。我使用以下代码来确认这一点:

print_r(array_keys(get_defined_vars()));

下面是我得到的输出:

Array ( [0] => template_name [1] => args [2] => template_path [3] => default_path [4] => cache_key [5] => template [6] => filter_template [7] => action_args [8] => title [9] => delivery_date [10] => email )

有人可以帮助我获得预期结果的最佳方法吗?

【问题讨论】:

    标签: php wordpress woocommerce metadata orders


    【解决方案1】:

    由于$email 变量似乎已定义,您通常可以使用以下方法获取WC_Order 对象实例:

    $order = $email->object;
    

    然后要获取您的自定义字段(元数据),您可以使用WC_Data 方法get_meta(),例如:

    $my_var = $order->get_meta( 'custom_field_meta_key' );
    

    或者你也可以使用旧的 WordPress 方式(来自订单 ID)

    $my_var = get_post_meta( $order->get_id(), 'custom_field_meta_key', true );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-23
      • 2022-01-04
      • 2016-02-23
      • 2020-05-08
      • 1970-01-01
      • 2022-01-03
      • 2019-09-08
      相关资源
      最近更新 更多