我在我的主题functions.php
中添加了一个自定义代码,为每个订单添加1.00美元的服务费。并且该服务费显示在woocommerce的默认电子邮件通知中,该通知来自此循环内部email-order-details.php
<?php
$totals = $order->get_order_item_totals();
if ( $totals ) {
$i = 0;
foreach ( $totals as $total ) {
$i++;
?>
<tr>
<th class="td" scope="row" colspan="2" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wp_kses_post( $total['label'] ); ?></th>
<td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wp_kses_post( $total['value'] ); ?></td>
</tr>
但我已经定制了email-order-details.php,我希望获得特定标签(服务费)和价值($ 1.00),email-order-details.php
以便我可以在我的表中使用它。
我用来添加额外服务费的代码如下。
/**
* Add a standard $ value service fee to all transactions in cart / checkout
*/
add_action( 'woocommerce_cart_calculate_fees','wc_add_svc_fee' );
function wc_add_svc_fee() {
global $woocommerce;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
// change the $fee to set the Service Fee to a value to suit
$fee = 1.00;
$woocommerce->cart->add_fee( 'Service Fee', $fee, true, 'standard' );
}
发布于 2019-01-03 15:50:04
以下代码将允许您自定义电子邮件通知的费用标签和值:
add_filter( 'woocommerce_get_order_item_totals', 'customizing_order_fee', 20, 3 );
function customizing_order_fee( $total_rows, $order, $tax_display ) {
// Only on email notifications
if( is_wc_endpoint_url() ) return $total_rows;
// Loop through order totals data to change the fee label
foreach( $total_rows as $key => $total_row ){
if (strpos($key, 'fee_') !== false){
$total_rows[$key]['label'] = __("My custom Fee label", "woocommerce") . ':';
$total_rows[$key]['value'] = wc_price(100.20);
}
}
return $total_rows;
}
代码位于活动子主题(或活动主题)的function.php文件中。经过测试和工作。
https://stackoverflow.com/questions/-100003099
复制相似问题