11ответ(ов) в теме
Добрый день. Пересмотрел весь форум но так и не нашел ответ на свой вопрос.
Как можно добавлять товар в корзину через ajax?
Такая конструкция не срабатывает
if (class_exists('Rcl_Cart')) {
$product_id = 57;
$add_cart = new Rcl_Cart();
$add_cart->add_product( $product_id, array(
'quantity' => 1
) );
}
Может сталкивался кто с такой проблемой?
Если добавлять через кнопку вставленную
<?php
global $post;
$CartButton = new Rcl_Cart_Button_Form(array(
'product_id' => $post->ID
));
echo $CartButton->cart_form(); ?>То срабатывает нормально. Но мне по требованию нужно добавлять сразу список товаров
Редакции сообщения
04.06.2020 14:30Причина: не указано
04.06.2020 14:30Причина: не указано
04.06.2020 14:30Причина: не указано
04.06.2020 14:31Причина: не указано
"<style type="text/css"> .wp-die-message { display: none; } </style><link rel="stylesheet" href="https://cc99639.tmweb.ru/wp-includes/css/dashicons.css" media="all" /><link rel="stylesheet" href="https://cc99639.tmweb.ru/wp-content/plugins/query-monitor/assets/query-monitor.css" media="all" /><div data-qm="qm"><div id="qm-fatal" data-qm-message="Uncaught Error: Too few arguments to function Rcl_Cart::add_product(), 1 passed in /home/c/cc99639/wordpress/public_html/wp-content/themes/egrn/inc/inc_ajax/create_goods.php on line 20 and exactly 2 expected" data-qm-file="wp-content/plugins/wp-recall/add-on/commerce/classes/class-rcl-cart.php" data-qm-line="60"><div class="qm-fatal-wrap"><p><span class="dashicons dashicons-warning" aria-hidden="true"></span> <b>Fatal error</b>: Uncaught Error: Too few arguments to function Rcl_Cart::add_product(), 1 passed in /home/c/cc99639/wordpress/public_html/wp-content/themes/egrn/inc/inc_ajax/create_goods.php on line 20 and exactly 2 expected<br>in <b>/home/c/cc99639/wordpress/public_html/wp-content/plugins/wp-recall/add-on/commerce/classes/class-rcl-cart.php</b> on line <b>60</b></p><p>Стек вызовов:</p><ol><li><code>Rcl_Cart::add_product()</code><br><span class="qm-info qm-supplemental">wp-content/themes/egrn/inc/inc_ajax/create_goods.php:20</span></li><li><code>create_goods_callback()</code><br><span class="qm-info qm-supplemental">wp-includes/class-wp-hook.php:287</span></li><li><code>WP_Hook::apply_filters()</code><br><span class="qm-info qm-supplemental">wp-includes/class-wp-hook.php:311</span></li><li><code>WP_Hook::do_action()</code><br><span class="qm-info qm-supplemental">wp-includes/plugin.php:478</span></li><li><code>do_action()</code><br><span class="qm-info qm-supplemental">wp-admin/admin-ajax.php:175</span></li></ol></div><h2>Query Monitor</h2></div></div><p>На сайте возникла критическая ошибка.</p><p><a href="https://ru.wordpress.org/support/article/debugging-in-wordpress/">Узнайте больше про отладку в WordPress.</a></p><script type="text/javascript">window.location.href="https://cc99639.tmweb.ru/wp-admin/admin.php?page=manage-addon-recall&update-addon=error-activate&error-text=Add-on <b>COMMERCE</b> has caused an error and was disabled. The error text: <br>Fatal Error: Uncaught ArgumentCountError: Too few arguments to function Rcl_Cart::add_product(), 1 passed in /home/c/cc99639/wordpress/public_html/wp-content/themes/egrn/inc/inc_ajax/create_goods.php on line 20 and exactly 2 expected in /home/c/cc99639/wordpress/public_html/wp-content/plugins/wp-recall/add-on/commerce/classes/class-rcl-cart.php:60
Stack trace:
#0 /home/c/cc99639/wordpress/public_html/wp-content/themes/egrn/inc/inc_ajax/create_goods.php(20): Rcl_Cart->add_product(57)
#1 /home/c/cc99639/wordpress/public_html/wp-includes/class-wp-hook.php(287): create_goods_callback('')
#2 /home/c/cc99639/wordpress/public_html/wp-includes/class-wp-hook.php(311): WP_Hook->apply_filters('', Array)
#3 /home/c/cc99639/wordpress/public_html/wp-includes/plugin.php(478): WP_Hook->do_action(Array)
#4 /home/c/cc99639/wordpress/public_html/wp-admin/admin-ajax.php(175): do_action('wp_ajax_create_...')
#5 {main}
thrown in /home/c/cc99639/wordpress/public_html/wp-content/plugins/wp-recall/add-on/commerce/classes/class-rcl-cart.php:60<br>";</script>"
К сожалению форум не помог. Шаблон новый. Плагинов на нем нет. Не считая Carbon Fields, All In One WP Security,
Query Monitor. Но они на кеш не влияют. По мимо этого в functions вообще прописано
function shapeSpace_add_header() {
header("Cache-Control: no-store, no-cache, must-revalidate");
}
add_action('init', 'shapeSpace_add_header');
Завтра еще покавыряюсь если будут результаты отпишусь
Разобрался в проблеме. Помимо добавления на стороне сервера
if (class_exists('Rcl_Cart')) {
$Cart = new Rcl_Cart();
$args = array();
$args['quantity'] = 1;
$args['variations'] = false;
$Cart->add_product($product_id,$args);
$result = array(
'cart' => array(
'order_price' => $Cart->order_price,
'products_amount' => $Cart->products_amount,
'products' => $Cart->products
),
'product' => $Cart->get_product($product_id),
);
$result = apply_filters('rcl_add_to_cart_result', $result);
}
wp_send_json($result);Нужно на js еще в куки записывать результат
$.ajax({
url: object_info.ajaxurl,
method: 'post',
data: data,
success: function (data) {
console.log(data);
$('a.goal-go-to-cart-btn .js-cart-count').text(data.cart.products[0].product_amount);
jQuery.cookie( 'rcl_cart', JSON.stringify( data.cart.products ), {
path: '/'
} );
},
error: function (jqXHR, status, errorThrown) {
}
});
Редакции сообщения
05.06.2020 12:36Причина: не указано
06.06.2020 09:43Причина: не указано
06.06.2020 09:43Причина: не указано
06.06.2020 09:44Причина: не указано
Тема закрыта. Публикация новых сообщений запрещена.