Wordpress得到帖子字段

时间:2015-07-10 14:04:46

标签: php wordpress woocommerce

我正在覆盖WooCommerce中的管理员电子邮件通知模板,当订单交易成功时,我想在电子邮件中添加交易ID。

我在管理员电子邮件模板中尝试了$order->get_transaction_id() as explained here,但它返回一个空结果。

然后我在管理员电子邮件模板中尝试了这个:

do_action('getOrderTransactionID', $order->id);

在我的主题的functions.php中我添加了这个但是这个函数也没有返回任何内容。

add_action('getOrderTransactionID', 'getOrderTransactionIDForEmail');

function getOrderTransactionIDForEmail($orderId){
    echo get_metadata('post', $orderId, '_transaction_id', true);

    //get_post_data doesn't return anything either
    //get_post_meta( $orderId, '_transaction_id', true);
}

wp_postmeta表中,每次成功交易后都会保存_transaction_id元键。为什么我无法检索数据库中已有的_transaction_id

2 个答案:

答案 0 :(得分:1)

您使用的网关是什么?如果您没有看到_transaction_id,则需要在网关插件中手动保存返回的transaction_id。 Check out this page

尝试在付款网关文件中保存交易ID,然后在var_dump(get_post_custom($order->id));

时查看是否显示
add_post_meta( $order->id, '_transaction_id', YOUR_TRANSACTION_ID, true );

答案 1 :(得分:0)

以下是如何使用现有挂钩向电子邮件模板添加数据的示例。

function kia_display_email_order_meta( $order, $sent_to_admin, $plain_text ) {
    $some_field = get_post_meta( $order->id, '_some_field', true ),
    $another_field = get_post_meta( $order->id, '_another_field', true ),
    if( $plain_text ){
        echo 'The value for some field is ' . $some_field . ' while the value of another field is ' . $another_field;
    } else {
        echo '<p>The value for <strong>some field</strong> is ' . $some_field. ' while the value of <strong>another field</strong> is ' . $another_field;</p>;
    }
}
add_action( 'woocommerce_email_order_meta', 'kia_display_email_order_meta', 30, 3 );