如何在电子邮件中回显 Woocommerce 货运跟踪 URL?
How to echo Woocommerce shipment tracking URL in email?
我已经在这里找到了这个主题: 这是有效的,但在我的例子中,我想显示跟踪 link 而不是跟踪号码。我们想在特定位置显示此信息。插件代码向我展示了这个:
<a href="<?php echo esc_url( $tracking_item['formatted_tracking_link'] ); ?>" target="_blank"><?php _e( 'Track', 'woocommerce-shipment-tracking' ); ?></a>
在插件的文档中说,我可以使用密钥 tracking_link
访问数据
https://docs.woocommerce.com/document/shipment-tracking/#section-9
然后我尝试用它访问数据..但它总是空的..但是信息在那里..因为当我使用 tracking_number
而不是 tracking_link
时我得到了正确的订单跟踪号。
更新:
根据新信息,我必须在这里做一个解决方法,因为“tracking_link”值为空。
// Test - Output tracking code - 3
$tracking_items = $order->get_meta('_wc_shipment_tracking_items');
if( ! empty($tracking_items) ) {
foreach ( $tracking_items as $data ){
echo '<a href="https://www.post.ch/swisspost-tracking?formattedParcelCodes='.<?php echo esc_url( $data['tracking_number'] ); ?> . '" target="_blank">'. sprintf( __('Track (number %s)', 'woocommerce-shipment-tracking' ), $data['tracking_number'] ) .'</a>';
print_r($data);
}
}
更新: 不要使用订单号……最好使用定义的 WC_Order
对象,例如:
$tracking_items = $order->get_meta('_wc_shipment_tracking_items');
或使用订单 ID (来自定义的 WC_Order 对象) 如:
$tracking_items = get_post_meta( $order->get_id(), '_wc_shipment_tracking_items', true );
所以根据Shipment Tracking documentation提供的link,试试:
$tracking_items = $order->get_meta('_wc_shipment_tracking_items');
if( ! empty($tracking_items) ) {
foreach ( $tracking_items as $data ){
echo '<a href="https://www.post.ch/swisspost-tracking?formattedParcelCodes='. esc_url( $data['tracking_number'] ) . '" target="_blank">'. sprintf( __('Track (number %s)', 'woocommerce-shipment-tracking' ), $data['tracking_number'] ) .'</a>';
// print_r($data); // For testing
}
}
我已经在这里找到了这个主题:
<a href="<?php echo esc_url( $tracking_item['formatted_tracking_link'] ); ?>" target="_blank"><?php _e( 'Track', 'woocommerce-shipment-tracking' ); ?></a>
在插件的文档中说,我可以使用密钥 tracking_link
https://docs.woocommerce.com/document/shipment-tracking/#section-9
然后我尝试用它访问数据..但它总是空的..但是信息在那里..因为当我使用 tracking_number
而不是 tracking_link
时我得到了正确的订单跟踪号。
更新: 根据新信息,我必须在这里做一个解决方法,因为“tracking_link”值为空。
// Test - Output tracking code - 3
$tracking_items = $order->get_meta('_wc_shipment_tracking_items');
if( ! empty($tracking_items) ) {
foreach ( $tracking_items as $data ){
echo '<a href="https://www.post.ch/swisspost-tracking?formattedParcelCodes='.<?php echo esc_url( $data['tracking_number'] ); ?> . '" target="_blank">'. sprintf( __('Track (number %s)', 'woocommerce-shipment-tracking' ), $data['tracking_number'] ) .'</a>';
print_r($data);
}
}
更新: 不要使用订单号……最好使用定义的 WC_Order
对象,例如:
$tracking_items = $order->get_meta('_wc_shipment_tracking_items');
或使用订单 ID (来自定义的 WC_Order 对象) 如:
$tracking_items = get_post_meta( $order->get_id(), '_wc_shipment_tracking_items', true );
所以根据Shipment Tracking documentation提供的link,试试:
$tracking_items = $order->get_meta('_wc_shipment_tracking_items');
if( ! empty($tracking_items) ) {
foreach ( $tracking_items as $data ){
echo '<a href="https://www.post.ch/swisspost-tracking?formattedParcelCodes='. esc_url( $data['tracking_number'] ) . '" target="_blank">'. sprintf( __('Track (number %s)', 'woocommerce-shipment-tracking' ), $data['tracking_number'] ) .'</a>';
// print_r($data); // For testing
}
}