仅当特定类别的购物车中有特定产品时,才更改下订单按钮文本

时间:2018-04-10 06:30:36

标签: php wordpress woocommerce

我正在尝试更改结帐页面中的地点订单按钮文字,条件是当且仅当购物车中的产品来自"捐赠"类别。否则,希望更改"下订单"到"提交订单"。为此,我已应用以下代码

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 ..

任何建议都表示赞赏。

提前致谢

1 个答案:

答案 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。其中有一个有关更改特定产品的按钮文本的示例。