代码之家  ›  专栏  ›  技术社区  ›  melvin

如何访问shortcode中的woomerce订单变量?

  •  0
  • melvin  · 技术社区  · 6 年前

    我正在添加WordPress到Woomcommerce电子邮件模板的一个快捷方式。

    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获取一些值。如何使用这些变量?shortcode handler函数位于functions.php中

    我也尝试了以下操作,但是$order\u id仍然是空的。

    do_shortcode('[sample_test name="additional_gift_msg" order_id=' . $order->get_id() . ']');
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   raju_eww    6 年前

    下面的代码就可以了。

    function th_email_shortcode_handler( $atts ) {
            if ( ! empty( $atts['name'] ) ) {
                $field = $atts['name'];
                echo 'Found me';
            }
    
        global $wp;
    
        $order_id  = absint( $wp->query_vars['order_id'] );
    
        if ( empty($order_id) || $order_id == 0 )
            return; // Exit;
    
        return $order_id;
        }
    
    add_shortcode('sample_test','th_email_shortcode_handler');