Добавить ссылку с переменной в почту WooCommerce

#php #wordpress #woocommerce #printf

#php #wordpress #woocommerce #printf

Вопрос:

Как мне создать функцию printf для отображения html-ссылки, заполненной переменной woocommerce? Смотрите код ниже:

 <?php printf('<a href="https://www.baseclothing.nl/mijn-account/view-order/%s/">https://www.baseclothing.nl/mijn-account/view-order/%s/</a>', 'woocommerce', esc_html( $order->get_order_number() ) ); ?>
  

Ссылка, на которую я получаю отправку, являетсяhttps://www.baseclothing.nl/mijn-account/view-order/woocommerce /. Переменную %s необходимо заполнить номером заказа, чтобы при нажатии на ссылку пользователь получал отправку в правильном порядке в своем меню заказов.

Ответ №1:

Вы можете добавить переменную к ссылке в почтовом сообщении WooCommerce, используя HTML со встроенным PHP:

 <a href="https://example.com/view-order/<?php echo $order->get_order_number();?>/">View your order details.</a>
  

Ответ №2:

 $ord_number = 10; //esc_html( $order->get_order_number() )
printf('<a href="https://www.baseclothing.nl/mijn-account/view-order/%s/">https://www.baseclothing.nl/mijn-account/view-order/%s/</a>', 'woocommerce',  $ord_number);
  

Это работает нормально. При возникновении каких-либо проблем, пожалуйста, проверьте правильность получения номера вашего заказа перед отправкой printf.

Протестировано нормально

Ответ №3:

В вашем коде замените ненужное 'woocommerce' на esc_html( $order->get_order_number() ) , так как номер заказа требуется два раза (две одинаковые ссылки):

 <?php printf('<a href="https://www.baseclothing.nl/mijn-account/view-order/%s/">https://www.baseclothing.nl/mijn-account/view-order/%s/</a>', esc_html( $order->get_order_number() ), esc_html( $order->get_order_number() ) ); ?>
  

Это приведет к появлению ovoid woocommerce для замены необходимого номера заказа в ссылке. Код работает и имеет правильную ссылку с номером заказа.


Теперь, когда вы используете одну и ту же ссылку в своем коде два раза, попробуйте вместо этого эту короткую версию:

 <?php $url = sprintf('https://www.baseclothing.nl/mijn-account/view-order/%s/', esc_html( $order->get_order_number() ) ); 
echo '<a href="'.$url.'">'.$url.'</a>'; ?>
  

Протестировано и тоже отлично работает.