php - 结账页面中的 Woocommerce 缺货通知

标签 php filter woocommerce conditional-statements action

我正在尝试添加一个操作,以检查当前仅可延期交货的产品是否正在被 checkout - 如果一个或多个,我想要在结帐表单之前显示一条消息。

我已经走到这一步了:

add_action( 'woocommerce_before_checkout_form', 'wnd_checkout_message', 10 );
function wnd_checkout_message( ) {
echo '<div class="wnd-checkout-message"><h3>The message goes here!</h3></div>';}

但是我如何检查延期订购的产品当前是否正在被 checkout /是否在购物车中?

最佳答案

将此代码添加到您的functions.php 文件中。如果您购物车中的某一产品缺货,它将显示一条通知。

add_action( 'woocommerce_before_checkout_form', 'es_checkout_add_cart_notice' );

function es_checkout_add_cart_notice() {
    $message = "You have a backorder product in your cart.";

    if ( es_check_cart_has_backorder_product() ) 
        wc_add_notice( $message, 'error' );

}

function es_check_cart_has_backorder_product() {
    foreach( WC()->cart->get_cart() as $cart_item_key => $values ) {
        $cart_product =  wc_get_product( $values['data']->get_id() );

        if( $cart_product->is_on_backorder() )
            return true;
    }

    return false;
}

关于php - 结账页面中的 Woocommerce 缺货通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49014478/

相关文章:

php - 在 PHP 中从文件流创建 Zip

php - 需要帮助创建 mysql 查询

filter - 如何使用函数过滤域 View ?在 odoo 9

filter - 如何获得angular2中过滤(管道)集的大小

php - Wordpress 和 Woocommerce 中的 Hook 及其 Hook 函数执行队列

php - 使用 WHERE IN 或 join 进行双重查询

php - 为什么检查字符串是否为空的函数总是返回true?

c++ - 为 opencv c++ 函数设置边框类型 : erode()

Wordpress Woocommerce 将所有产品更改为缺货

php - 如果在 Woocommerce 中没有应用优惠券,则自动将折扣应用于用户角色