我有此代码可以从商店中添加产品,但是当您单击以添加产品时,它们将被正确添加。问题是我不想转到产品页面。我要他留在商店里。
代码是这样的:
/**
* Override loop template and show quantities next to add to cart buttons
*/
add_action('woocommerce_after_shop_loop_item',
'woocommerce_template_single_add_to_cart', 30);
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
function quantity_inputs_for_woocommerce_loop_add_to_cart_link( $html, $product ) {
if ( $product && $product->is_type( 'simple' ) && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually() ) {
$html = '<form action="' . esc_url( $product->add_to_cart_url() ) . '" class="cart" method="post" enctype="multipart/form-data">';
$html .= woocommerce_quantity_input( array(), $product, false );
$html .= '<button type="submit" class="button alt">' . esc_html( $product->add_to_cart_text() ) . '</button>';
$html .= '</form>';
}
return $html;
}
帮助!
答案 0 :(得分:0)
您需要使用jQuery和AJAX完成此操作。
event.preventDefault()
表单。$.post()
方法通过AJAX调用提交数据.append()
方法修改购物车列表元素关于如何获取提交数据所需的URL,可以将URL本地化为变量,然后按以下方式提取它们:
function theme_enqueue_scripts() {
/**
* frontend ajax requests.
*/
wp_enqueue_script( 'frontend-ajax', JS_DIR_URI . 'frontend-ajax.js', array('jquery'), null, true );
wp_localize_script( 'frontend-ajax', 'frontend_ajax_object',
array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'add_to_cart_url' => $add_to_cart_url,
'add_to_cart_text' => $add_to_cart_text,
)
);
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_scripts' );
P.S。您需要将购物车的URL和文本传递给theme_enqueue_scripts
函数。