我正在尝试更改结帐页面中的地点订单按钮文字,条件是当且仅当购物车中的产品来自"捐赠"类别。否则,希望更改"下订单"到"提交订单"。为此,我已应用以下代码
add_filter('woocommerce_order_button_text', 'subscriptions_custom_checkout_submit_button_text' );
function subscriptions_custom_checkout_submit_button_text( $order_button_text ) {
// set our flag to be false until we find a product in that category
$cat_check = false;
// check each cart item for our category
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$product = $cart_item['data'];
// replace 'donations' with your category's slug
if ( has_term( 'donations', 'product_cat', $product->id ) && !has_term( 'dvds', 'product_cat', $product->id ) ){
$cat_check = true;
// break because we only need one "true" to matter here
break;
}
}
// if a product in the cart is in our category, do something
if ( $cat_check ) {
$order_button_text = __( 'Submit Donation', 'woocommerce-subscriptions' );
} else {
// You can change it here for other products types in cart
# $order_button_text = __( 'Something here', 'woocommerce-subscriptions' );
$order_button_text = __( 'Submit Order', 'woocommerce-subscriptions' );
}
return $order_button_text;
}
有效。但是有一个不同的问题..如果有来自其他类别和捐赠类别的产品。然后它仍然将地点顺序按钮改为"提交捐赠"因为在那里遇到一个条件,即捐赠类别中存在一种产品。
现在我想要的是,如果有来自捐赠类别和其他类别的产品,那么我只想将下订单按钮文本更改为"提交订单"文本。
我认为需要在if循环中应用AND条件。但我没有得到它如何在if循环中应用和condtion ..
任何建议都表示赞赏。
提前致谢
答案 0 :(得分:0)
这应该对您有用:
add_filter('woocommerce_order_button_text', 'subscriptions_custom_checkout_submit_button_text' );
function subscriptions_custom_checkout_submit_button_text( $order_button_text ) {
$donation = true;
// check each cart item for our category
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$product = $cart_item['data'];
if ( !has_term( 'donations', 'product_cat', $product->id ) ){
$donation = false;
break;
}
}
return $donation ? 'Submit Donation' : 'Submit Order';
}
您还可以在此处查看有关更改“下订单”按钮文本的教程https://rudrastyh.com/woocommerce/place-order-button-text.html。其中有一个有关更改特定产品的按钮文本的示例。