当订单 ID 不可用时获取 WooCommerce 电子邮件中的订单元数据
Get order meta data on WooCommerce email when order Id is not available
我正在尝试提取我添加到我的 WooCommerce 结帐表单中的自定义字段的订单元数据。我在一个 PHP 文件中执行此操作,该文件用于将自定义部分添加到 WooCommerce 发送给客户的订单确认电子邮件中(即订单处理的最后阶段)。
为了做到这一点,我尝试使用 WC_Order class 和以下代码:
$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 )
有人可以帮助我获得预期结果的最佳方式吗?
由于 $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 );
我正在尝试提取我添加到我的 WooCommerce 结帐表单中的自定义字段的订单元数据。我在一个 PHP 文件中执行此操作,该文件用于将自定义部分添加到 WooCommerce 发送给客户的订单确认电子邮件中(即订单处理的最后阶段)。
为了做到这一点,我尝试使用 WC_Order class 和以下代码:
$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 )
有人可以帮助我获得预期结果的最佳方式吗?
由于 $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 );