在WordPress

时间:2017-08-31 16:15:33

标签: php ajax wordpress

我需要在购物车中设置最大数量的产品,它不会超过99个。

我有以下问题:

在AJAX函数WooCommerce核心中,它包含以下内容:

public static function add_to_cart() {
    ob_start();

    $product_id        = apply_filters( 'woocommerce_add_to_cart_product_id', absint( $_POST['product_id'] ) );
    $quantity          = empty( $_POST['quantity'] ) ? 1 : wc_stock_amount( $_POST['quantity'] );
    $passed_validation = apply_filters( 'woocommerce_add_to_cart_validation', true, $product_id, $quantity );
    $product_status    = get_post_status( $product_id );

    if ( $passed_validation && false !== WC()->cart->add_to_cart( $product_id, $quantity ) && 'publish' === $product_status ) {

        do_action( 'woocommerce_ajax_added_to_cart', $product_id );

        if ( get_option( 'woocommerce_cart_redirect_after_add' ) == 'yes' ) {
            wc_add_to_cart_message( array( $product_id => $quantity ), true );
        }

        // Return fragments
        self::get_refreshed_fragments();

    } else {

        // If there was an error adding to the cart, redirect to the product page to show any errors
        $data = array(
            'error'       => true,
            'product_url' => apply_filters( 'woocommerce_cart_redirect_after_error', get_permalink( $product_id ), $product_id ),
        );

        wp_send_json( $data );
    }
}

所以,即使我要添加钩子 woocommerce_add_to_cart_validation (我做了什么) - 在这种情况下,正如您从代码中看到的那样,它会将我重定向到产品页面并显示我错了。

您是否知道如何在同一页面上停止重定向并显示错误?

谢谢。

0 个答案:

没有答案