【问题标题】:WooCommerce 'if ( is_cart() )' in functions.php not working?Functions.php 中的 WooCommerce 'if ( is_cart() )' 不起作用?
【发布时间】:2016-05-08 08:54:01
【问题描述】:

我在 functions.php 中添加了以下代码,以便我可以更改 WooCommerce 标准“添加到购物车通知”。

通知确实发生了变化,但if ( is_cart() ) 似乎不起作用。它在购物车页面上输出 FALSE。

我一定是监督了什么..?

add_filter ( 'wc_add_to_cart_message', 'yw_add_to_cart_message', 10, 2 );

function yw_add_to_cart_message($message, $product_id = null) {

    $titles[] = get_the_title( $product_id );

    $titles = array_filter( $titles );

    if ( is_cart() ) {
        $cart_link  = '<div class="uk-width-medium-1-5 uk-text-right"><a href="' . WC_Cart::get_checkout_url() . '"><i class="uk-icon-check-square-o"></i> ' . __( 'Checkout', 'woocommerce' ) . '</a></div>';
    } else {
        $cart_link  = '<div class="uk-width-medium-1-5 uk-text-right"><a href="' . WC_Cart::get_cart_url() . '"><i class="uk-icon-shopping-cart"></i> ' . __( 'View Cart', 'woocommerce' ) . '</a></div>';
    }

    $added_text = '<div class="uk-grid uk-grid-collapse" data-uk-grid-margin><div class="uk-width-medium-4-5">' . sprintf( _n( '%s has been added to your cart.', '%s have been added to your cart.', sizeof( $titles ), 'woocommerce' ), wc_format_list_of_items( $titles ) ) . '</div>' . $cart_link . '</div>';

    $message = sprintf( '%s', $added_text );

    return $message;
}

【问题讨论】:

    标签: php wordpress woocommerce checkout cart


    【解决方案1】:

    您必须使用get_option( 'woocommerce_cart_redirect_after_add' ) == 'yes' 而不是is_cart()

    add_filter ( 'wc_add_to_cart_message', 'yw_add_to_cart_message', 10, 2 );
    
    function yw_add_to_cart_message($message, $product_id = null) {
    
        $titles[] = get_the_title( $product_id );
    
        $titles = array_filter( $titles );
    
        if ( get_option( 'woocommerce_cart_redirect_after_add' ) == 'yes' ) {
            $cart_link  = '<a href="' . WC_Cart::get_checkout_url() . '"><i class="uk-icon-check-square-o"></i> ' . __( 'Checkout', 'woocommerce' ) . '</a>';
        } else {
            $cart_link  = '<a href="' . WC_Cart::get_cart_url() . '"><i class="uk-icon-shopping-cart"></i> ' . __( 'View Cart', 'woocommerce' ) . '</a>';
        }
    
        $added_text = '<div class="uk-grid uk-grid-collapse" data-uk-grid-margin><div class="uk-width-medium-4-5">' . sprintf( _n( '%s has been added to your cart.', '%s have been added to your cart.', sizeof( $titles ), 'woocommerce' ), wc_format_list_of_items( $titles ) ) . '</div><div class="uk-width-medium-1-5 uk-text-right">' . $cart_link . '</div></div>';
    
        $message = sprintf( '%s', $added_text );
    
        return $message;
    }
    

    相关主题:HereHere

    【讨论】:

    • 你应该解释为什么而不是简单地链接到它。
    • 这是一个非常有用的答案。我知道这个问题是无效的。
    • @Godisgood 非常感谢...我会尽快更新,为社区提供更多解释:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    相关资源
    最近更新 更多