Как я могу получить доступ к переменным порядка woocommerce внутри шорткода? - PullRequest
0 голосов
/ 04 октября 2018

Я добавляю шорткод из 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.Как я могу использовать эти переменные?Функция обработчика шорткода находится в functions.php

Также я попробовал следующее, но $ order_id все еще пуст.

do_shortcode('[sample_test name="additional_gift_msg" order_id=' . $order->get_id() . ']');

1 Ответ

0 голосов
/ 04 октября 2018

Ниже код сделает свое дело.

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');
...