gpt4 book ai didi

php - 如何从 Woocommerce 电子邮件中删除价格

转载 作者:行者123 更新时间:2023-12-02 03:39:42 28 4
gpt4 key购买 nike

我正在尝试开发一个插件,在完成订单后向客户发送“礼品收据”。除了无法从电子邮件中删除价格外,我一切正常。当我尝试编辑 email-order-items.php 模板并删除价格列时,电子邮件变成空白。

具体来说,这是针对可下载产品的,因此当我对电子邮件订单项目文件进行任何编辑时,下载链接不再显示。而且我只希望它从礼品收据电子邮件而不是其他电子邮件中删除价格。

我做了什么:在我的插件中,我调用了一个电子邮件模板“customer-gift-receipt.php”,它与 Woocommerce 随附的“customer-processing-order.php”几乎相同。

在文件中有这一行引入了电子邮件订单项目模板并显示了链接和价格

<?php echo $order->email_order_items_table( $order->is_download_permitted(), 
true, ($order->status=='processing') ? true : false ); ?>

This is the email-order-items template.

无论我做什么,我似乎都无法从 customer-gift-receipt.php 中删除这些价格电子邮件。具体就是上面模板中的这一行:

<td style="text-align:left; vertical-align:middle; border: 1px solid #eee;">
<?php echo $order->get_formatted_line_subtotal( $item ); ?>
</td>

我尝试创建 email-order-items 模板的副本并删除该行,然后在我的插件中调用它,但没有成功。我还尝试在 customer-gift-receipt.php 中复制电子邮件订单项目模板。文件在适当的部分,但也失败了。我必须定义 $items = $order->get_items();当我尝试复制 email-order-items直接进入customer-gift-receipt让它有点工作的模板。

那么谁能建议我从我的客户礼品收据模板中删除价格的方法?

我已经检查过这些链接:

Class WC_Order

Class WC_Email_Customer_Processing_Order


更新:我刚找到这个链接,它应该可以帮助我引入 email_order_items_table课外:https://gist.github.com/mikejolley/1965842当我尝试在我的 customer-email-receipt 中添加以上代码时模板并下订单我收到此错误:

Fatal error: Class 'order_item_meta' not found in 
.../.../.../.../woocommerce/emails/customer-gift-receipt.php on line 41"

最佳答案

从电子邮件模板中禁用电子邮件订单项目表并将该函数作为自定义函数复制到您的主题中。

<tbody>
<?php //echo $order->email_order_items_table( $order->is_download_permitted(), true, ($order->status=='processing') ? true : false );
echo custom_order_table($order);
?>
</tbody>

我必须删除下载和变体,这些变体会导致 *Fatal Error with Class 'order_item_meta'* 错误。所以你的自定义函数看起来像:

       function custom_order_table($order,$price = false) {

foreach($order->get_items() as $item) :

$_product = $order->get_product_from_item( $item );

$file = $sku = $variation = $image = '';

if ($show_image) :
$src = wp_get_attachment_image_src( get_post_thumbnail_id( $_product->id ), 'thumbnail');
$image = apply_filters('woocommerce_order_product_image', '<img src="'.$src[0].'" alt="Product Image" height="'.$image_size[1].'" width="'.$image_size[0].'" style="vertical-align:middle; margin-right: 10px;" />', $_product);
endif;

if ($show_sku && $_product->get_sku()) :
$sku = ' (#' . $_product->get_sku() . ')';
endif;


$return .= '<tr>
<td style="text-align:left; vertical-align:middle; border: 1px solid #eee;">'. $image . apply_filters('woocommerce_order_product_title', $item['name'], $_product) . $sku . $file . $variation . '</td>
<td style="text-align:left; vertical-align:middle; border: 1px solid #eee;">'.$item['qty'].'</td>';
if ($price):
$return .= '<td style="text-align:left; vertical-align:middle; border: 1px solid #eee;">';

if ( $order->display_cart_ex_tax || !$order->prices_include_tax ) :
$ex_tax_label = ( $order->prices_include_tax ) ? 1 : 0;
$return .= woocommerce_price( $order->get_line_subtotal( $item ), array('ex_tax_label' => $ex_tax_label ));
else :
$return .= woocommerce_price( $order->get_line_subtotal( $item, true ) );
endif;

$return .= '</td>';
endif;
$return .= '</tr>';

// Show any purchase notes
if ($show_purchase_note) :
if ($purchase_note = get_post_meta( $_product->id, '_purchase_note', true)) :
$return .= '<tr><td colspan="3" style="text-align:left; vertical-align:middle; border: 1px solid #eee;">' . apply_filters('the_content', $purchase_note) . '</td></tr>';
endif;
endif;

endforeach;

echo $return;
}

关于php - 如何从 Woocommerce 电子邮件中删除价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20860132/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com