php - WooCommerce 在订单电子邮件中显示使用的优惠券
问题描述
我有一个显示使用过的优惠券的代码:
add_action( 'woocommerce_email_after_order_table', 'add_payment_method_to_admin_new_order', 15, 2 );
function add_payment_method_to_admin_new_order( $order, $is_admin_email ) {
if( $order->get_used_coupons() ) {
$coupons_count = count( $order->get_used_coupons() );
$i = 1;
$coupons_list = '';
foreach( $order->get_used_coupons() as $coupon) {
$coupons_list .= $coupon;
if( $i < $coupons_count )
$coupons_list .= ', ';
$i++;
}
echo '<p></p>';
echo '<p><strong>Купон:</strong> ' . $coupons_list . '</p>';
} // endif get_used_coupons
}
以及在 WooCommerce 表行中显示信息的代码:
add_filter( 'woocommerce_get_order_item_totals', 'bbloomer_add_recurring_row_email', 10, 2 );
function bbloomer_add_recurring_row_email( $total_rows, $myorder_obj ) {
$total_rows['recurr_not'] = array(
'label' => __( 'Купон:', 'woocommerce' ),
'value' => 'blabla'
);
return $total_rows;
}
如何将使用过的优惠券转移到价值字段?像这个'价值' => 'used_coupon'
解决方案
由于您有权访问,$order
因此可以以相同的方式应用它
function add_payment_method_to_admin_new_order( $order, $sent_to_admin, $plain_text, $email ) {
if( $order->get_used_coupons() ) {
$coupons_count = count( $order->get_used_coupons() );
$i = 1;
$coupons_list = '';
foreach( $order->get_used_coupons() as $coupon) {
$coupons_list .= $coupon;
if( $i < $coupons_count )
$coupons_list .= ', ';
$i++;
}
echo '<p></p>';
echo '<p><strong>Купон:</strong> ' . $coupons_list . '</p>';
} // endif get_used_coupons
}
add_action( 'woocommerce_email_after_order_table', 'add_payment_method_to_admin_new_order', 10, 4 );
function bbloomer_add_recurring_row_email( $total_rows, $order, $tax_display ) {
if( $order->get_used_coupons() ) {
$coupons_count = count( $order->get_used_coupons() );
$i = 1;
$coupons_list = '';
foreach( $order->get_used_coupons() as $coupon) {
$coupons_list .= $coupon;
if( $i < $coupons_count ) {
$coupons_list .= ', ';
$i++;
}
}
$total_rows['recurr_not'] = array(
'label' => __( 'Купон:', 'woocommerce' ),
'value' => $coupons_list,
);
}
return $total_rows;
}
add_filter( 'woocommerce_get_order_item_totals', 'bbloomer_add_recurring_row_email', 10, 3 );
推荐阅读
- r - R循环将输出分配给新向量
- java - 什么是 ParallelStream 队列行为?
- c# - 响应对象没有实现在 ASP.NET MVC 框架中下载的文件
- python - 使用python将speedtest csv数据写入csv文件
- mysql - HikariCP 多个池中的连接数
- javascript - 遍历 HTML 元素的属性,并能够判断哪些是在 HTML 中显式设置的
- windows - 如何配置用户的 git hook 文件夹以匹配项目的
- swift - 运行和开发相同的 Swift macOS 应用程序
- python - Django - 在另一个应用程序中访问应用程序设置
- scala - 通过 spark sql 和 scala 删除文件中的逻辑和直接重复