如何访问短码中的WooCommerce订单变量?

时间:2018-10-03 作者:melvin

我正在将wordpress中的一个短代码添加到woocommerce电子邮件模板中。

do_shortcode(\'[sample_test name="additional_gift_msg"]);
然后我用它在电子邮件中显示值。我能够显示值。

function th_email_shortcode_handler( $atts ) {
    if ( ! empty( $atts[\'name\'] ) ) {
        $field = $atts[\'name\'];
        echo \'Found me\';
    }
}
add_shortcode(\'sample_test\',\'th_email_shortcode_handler\');
但我需要$order$order_id 在这个处理函数中,从post meta中获取一些值。如何使用这些变量?短代码处理程序函数位于函数中。php

1 个回复
SO网友:ManzoorWani

WooCommerce电子邮件模板已经可以访问$order 变量您只需将其添加到短码ATT中,如下所示

do_shortcode(\'[sample_test name="additional_gift_msg" order_id=\' . $order->get_id() . \']\');
然后在短代码回调中:

function th_email_shortcode_handler( $atts ) {
    // get the $order_id
    $order_id = $atts[\'order_id\'];

    // create the order object if needed
    $order = new WC_Order( $order_id );

    if ( ! empty( $atts[\'name\'] ) ) {
        $field = $atts[\'name\'];
        echo \'Found me\';
    }
}

结束

相关推荐

Shortcode with foreach

我不能对foreach使用shortcode。它给了我语法错误。我错在哪里?function create_galeri_shortcode($atts) { $atts = shortcode_atts( array( ), $atts, \'galeri\' ); if ( has_post_format( \'gallery\' )) { $images = get_post_