我使用插件“代码段”在wordpress中输入以下代码。
我用以下代码更改了字幕:
add_filter('woocommerce_thankyou_order_received_text', 'woo_change_order_received_text', 10, 2 );
function woo_change_order_received_text( $str, $order ) {
$new_str = 'Deine Bestellung ist bei uns eingegangen und wird umgehend von uns bearbeitet.';
return $new_str;
}
效果很好,但是当客户购买特定产品时,我想添加其他文字。
我找到了以下代码:
<?php $present = false; ?>
<?php foreach( $order->get_items() as $item ):
$_product = wc_get_product( $item['product_id'] );
// Add whatever product id you want below here
if ( $item['product_id'] == 643 ):
$present = true; ?>
<?php endif; endforeach; ?>
<?php if( $present ): ?>
<p class="woocommerce-notice woocommerce-notice--success woocommerce-thankyou-order-received"><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', __( 'Thank you for buying this shirt', 'woocommerce' ), $order ); ?></p>
<?php else: ?>
<p class="woocommerce-notice woocommerce-notice--success woocommerce-thankyou-order-received"><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', __( 'Thank you. Your order has been received.', 'woocommerce' ), $order ); ?></p>
<?php endif; ?>
但是,当我将其添加到主题的functions.php或插件“代码段”中时,它会失败。
答案 0 :(得分:1)
您可以使用以下内容,在此示例中,产品ID = 30
function woo_change_order_received_text( $str, $order ) {
// Get items
$items = $order->get_items();
foreach ( $items as $item ) {
// Get product ID
$product_id = $item['product_id'];
// Equal to
if ( $product_id == 30 ) {
$str = 'Deine Bestellung ist bei uns eingegangen und wird umgehend von uns bearbeitet.';
}
}
return $str;
}
add_filter('woocommerce_thankyou_order_received_text', 'woo_change_order_received_text', 10, 2 );