Как я могу получить доступ к переменным порядка woocommerce внутри шорткода?
Я добавляю шорткод из 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
внутри этой функции обработчика, чтобы получить некоторое значение из мета-поста. Как я могу использовать эти переменные? Функция обработчика шорткода находится в functions.php
Также я попробовал следующее, но все еще $order_id пуст.
do_shortcode('[sample_test name="additional_gift_msg" order_id=' . $order->get_id() . ']');
1 ответ
Ниже код сделает свое дело.
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');