Woocommerce | 아약스의 클리어 카트
카트를 지우기 위해 AJAX 기능을 설정하려고 합니다.
HTML
<a onclick="clearCart(this)" data-href="/product-page/" data-productID="182">Go to Product</a>
자바스크립트
function clearCart(d) {
jQuery(document).ready(function($) {
var productID = d.getAttribute("data-productID");
$.ajax({
url: "addtocart.php",
data: {productID: productID},
type: "post",
success: function(output) {
window.location = d.getAttribute("data-href");
//alert(output);
}
});
});
}
PHP
if(isset($_POST['productID']) && !empty($_POST['productID'])) {
global $woocommerce;
$woocommerce->cart->empty_cart();
//echo $_POST['productID'];
}
결과
- 세 번째 PHP 행으로 인해 발생한 내부 서버 오류
- 경고 var 출력이 작동 중입니다(주석 코드 확인).
솔루션
저는 그것을 혼자서 알아냈고 @Mirza의 큰 도움을 받았습니다.p
제이에스
function clearCart(d) {
jQuery.post(
"https://dercampus.ch/wp-admin/admin-ajax.php",
//ajaxurl,
{
"action": "clearcart",
"data": d.getAttribute("data-productid")
},
function(){
window.location = d.getAttribute("data-href");
}
);
}
PHP
add_action('wp_ajax_nopriv_clearcart',function(){
global $woocommerce;
$woocommerce->cart->empty_cart();
});
php 코드를 다음으로 변경하십시오.
if(isset($_POST['data']) && !empty($_POST['data'])) {
global $woocommerce;
$woocommerce->cart->empty_cart();
//echo $_POST['productID'];
}
전달된 매개 변수는 제품이 아닌 데이터입니다.아이디
// before addto cart, only allow 1 item in a cart
add_filter( 'woocommerce_add_to_cart_validation', 'woo_custom_add_to_cart_before' );
function woo_custom_add_to_cart_before( $cart_item_data ) {
global $woocommerce;
$woocommerce->cart->empty_cart();
// Do nothing with the data and return
return true;
}
언급URL : https://stackoverflow.com/questions/40174894/woocommerce-clear-cart-by-ajax
'programing' 카테고리의 다른 글
텍스트 편집에 초점을 맞출 때 소프트 키보드를 표시하는 방법 (0) | 2023.06.28 |
---|---|
log4j2를 사용한 스프링 부트 로깅? (0) | 2023.06.28 |
ignored 파일을 git 상태 밖으로 유지 (0) | 2023.06.28 |
네트워크에서 오류가 발생했습니다. 예외가 발생했습니다.HTTP.simpleHTTP - haxr을 사용하여 XML-RPC를 통해 이미지 업로드 시도 (0) | 2023.06.28 |
R에서 print()로 새 줄 인쇄 (0) | 2023.06.28 |