parent
7f6c0defad
commit
855b355eac
@ -0,0 +1,44 @@ |
|||||||
|
|
||||||
|
<?php |
||||||
|
add_action('init', function() { |
||||||
|
pll_register_string ('Темы', 'Темы'); |
||||||
|
pll_register_string ('САМЫЕ ЧИТАЕМЫЕ', 'САМЫЕ ЧИТАЕМЫЕ'); |
||||||
|
pll_register_string ('время чтения', 'время чтения'); |
||||||
|
pll_register_string ('ВСЕ СТАТЬИ', 'ВСЕ СТАТЬИ'); |
||||||
|
pll_register_string ('ПРЕДЛОЖИТЕ СТАТЬЮ ИЛИ СТАНЬТЕ АВТОРОМ', 'ПРЕДЛОЖИТЕ СТАТЬЮ ИЛИ СТАНЬТЕ АВТОРОМ'); |
||||||
|
pll_register_string ('НАПИШИТЕ НАМ', 'НАПИШИТЕ НАМ'); |
||||||
|
pll_register_string ('COSMO тема редакции', 'COSMO тема редакции'); |
||||||
|
pll_register_string ('мин.', 'мин.'); |
||||||
|
pll_register_string ('Форма обратной связи', 'Форма обратной связи'); |
||||||
|
pll_register_string ('Ваше имя', 'Ваше имя'); |
||||||
|
pll_register_string ('Эл.почта', 'Эл.почта'); |
||||||
|
pll_register_string ('Текст обращения', 'Текст обращения'); |
||||||
|
pll_register_string ('Отправить', 'Отправить'); |
||||||
|
pll_register_string ('Чат бот с ветеринаром', 'Чат бот с ветеринаром'); |
||||||
|
pll_register_string ('Калькулятор рациона', 'Калькулятор рациона'); |
||||||
|
pll_register_string ('ПОКАЗАТЬ ЕЩЁ', 'ПОКАЗАТЬ ЕЩЁ'); |
||||||
|
pll_register_string ('ВСЕ', 'ВСЕ'); |
||||||
|
pll_register_string ('читать статью', 'читать статью'); |
||||||
|
pll_register_string ('Блог', 'Блог'); |
||||||
|
pll_register_string ('Главная', 'Главная'); |
||||||
|
pll_register_string ('Подпишитесь, чтобы быть в курсе деятельности Cosmopet и узнавать о наших, предложениях. Обещаем не заваливать вас бесполезными письмами. А за подписку дарим -25% на весь ассортимент нашей продукции', 'Подпишитесь, чтобы быть в курсе деятельности Cosmopet и узнавать о наших предложениях. Обещаем не заваливать вас бесполезными письмами. А за подписку дарим -25% на весь ассортимент нашей продукции'); |
||||||
|
pll_register_string ('Подписываясь на рассылку, я даю согласие на обработку персональных данных, на получение рекламных сообщений и новостей о товарах и услугах', 'Подписываясь на рассылку, я даю согласие на обработку персональных данных, на получение рекламных сообщений и новостей о товарах и услугах'); |
||||||
|
pll_register_string ('подписаться', 'подписаться'); |
||||||
|
pll_register_string ('Узнайте о нас больше и получите <span>скидку!</span>', 'Узнайте о нас больше и получите <span>скидку!</span>'); |
||||||
|
pll_register_string ('Это миф!', 'Это миф!'); |
||||||
|
pll_register_string ('Это правда!', 'Это правда!'); |
||||||
|
pll_register_string ('Правда', 'Правда'); |
||||||
|
pll_register_string ('Миф', 'Миф'); |
||||||
|
pll_register_string ('Далее', 'Далее'); |
||||||
|
pll_register_string ('ваш результат', 'ваш результат'); |
||||||
|
pll_register_string ('Скопировать', 'Скопировать'); |
||||||
|
pll_register_string ('Скопировано', 'Скопировано'); |
||||||
|
pll_register_string ('В магазин', 'В магазин'); |
||||||
|
pll_register_string ('Наш блог', 'Наш блог'); |
||||||
|
pll_register_string ('Новости рынка кормов и экологии, полезные статьи о здоровье домашних животных', 'Новости рынка кормов и экологии, полезные статьи о здоровье домашних животных'); |
||||||
|
pll_register_string ('ЭТАПЫ ПРОИЗВОД­СТВА', 'ЭТАПЫ ПРОИЗВОД­СТВА'); |
||||||
|
pll_register_string ('Этапы производс­тва корма', 'Этапы производс­тва корма'); |
||||||
|
pll_register_string ('Все статьи', 'Все статьи'); |
||||||
|
pll_register_string ('Узнать больше', 'Узнать больше'); |
||||||
|
}); |
||||||
|
|
@ -0,0 +1,143 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
add_action( 'wp_ajax_apply_coupon', 'custom_apply_coupon' ); |
||||||
|
add_action( 'wp_ajax_nopriv_apply_coupon', 'custom_apply_coupon' ); |
||||||
|
|
||||||
|
function custom_apply_coupon() { |
||||||
|
$coupon_code = isset( $_POST['coupon_code'] ) ? sanitize_text_field( $_POST['coupon_code'] ) : ''; |
||||||
|
|
||||||
|
if ( empty( $coupon_code ) ) { |
||||||
|
wp_send_json_error( array( 'message' => 'Код купона не указан.' ) ); |
||||||
|
} |
||||||
|
|
||||||
|
// Применение купона |
||||||
|
$applied = WC()->cart->apply_coupon( $coupon_code ); |
||||||
|
|
||||||
|
if ( $applied ) { |
||||||
|
wp_send_json_success(); |
||||||
|
} else { |
||||||
|
wp_send_json_error( array( 'message' => 'Купон не применён. Проверьте код.' ) ); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Обработчик AJAX для обновления количества товара в корзине |
||||||
|
*/ |
||||||
|
add_action('wp_ajax_update_cart_quantity', 'update_cart_quantity_handler'); |
||||||
|
add_action('wp_ajax_nopriv_update_cart_quantity', 'update_cart_quantity_handler'); |
||||||
|
|
||||||
|
function update_cart_quantity_handler() { |
||||||
|
if (!isset($_POST['cart_item_key']) || !isset($_POST['quantity'])) { |
||||||
|
wp_send_json_error('Недостаточно данных'); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
$cart_item_key = sanitize_text_field($_POST['cart_item_key']); |
||||||
|
$quantity = intval($_POST['quantity']); |
||||||
|
|
||||||
|
if ($quantity <= 0) { |
||||||
|
wp_send_json_error('Некорректное количество'); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
$cart = WC()->cart; |
||||||
|
$cart_item = $cart->get_cart_item($cart_item_key); |
||||||
|
|
||||||
|
if (!$cart_item) { |
||||||
|
wp_send_json_error('Товар не найден в корзине'); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
$updated = $cart->set_quantity($cart_item_key, $quantity); |
||||||
|
|
||||||
|
if ($updated) { |
||||||
|
wp_send_json_success(); |
||||||
|
} else { |
||||||
|
wp_send_json_error('Не удалось обновить количество'); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Обработчик AJAX для восстановления товара в корзине |
||||||
|
*/ |
||||||
|
add_action('wp_ajax_restore_cart_item', 'restore_cart_item_handler'); |
||||||
|
add_action('wp_ajax_nopriv_restore_cart_item', 'restore_cart_item_handler'); |
||||||
|
|
||||||
|
function restore_cart_item_handler() { |
||||||
|
if (!isset($_POST['product_id']) || !isset($_POST['quantity'])) { |
||||||
|
wp_send_json_error('Недостаточно данных'); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
$product_id = intval($_POST['product_id']); |
||||||
|
$variation_id = isset($_POST['variation_id']) ? intval($_POST['variation_id']) : 0; |
||||||
|
$quantity = intval($_POST['quantity']); |
||||||
|
|
||||||
|
if ($quantity <= 0) { |
||||||
|
wp_send_json_error('Некорректное количество'); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
$cart = WC()->cart; |
||||||
|
$cart_item_key = $cart->add_to_cart($product_id, $quantity, $variation_id); |
||||||
|
|
||||||
|
if ($cart_item_key) { |
||||||
|
wp_send_json_success(); |
||||||
|
} else { |
||||||
|
wp_send_json_error('Не удалось восстановить товар'); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Обработчик AJAX для получения фрагментов корзины |
||||||
|
*/ |
||||||
|
add_action('wp_ajax_get_cart_fragment', 'get_cart_fragment_handler'); |
||||||
|
add_action('wp_ajax_nopriv_get_cart_fragment', 'get_cart_fragment_handler'); |
||||||
|
|
||||||
|
function get_cart_fragment_handler() { |
||||||
|
ob_start(); |
||||||
|
Timber::render('shop/cart-contents.twig', Timber::context()); |
||||||
|
$contents = ob_get_clean(); |
||||||
|
|
||||||
|
$response = array( |
||||||
|
'contents' => $contents, |
||||||
|
'total' => WC()->cart->get_cart_total(), |
||||||
|
'count' => WC()->cart->get_cart_contents_count() |
||||||
|
); |
||||||
|
|
||||||
|
wp_send_json_success($response); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Инициализация WooCommerce AJAX |
||||||
|
*/ |
||||||
|
add_action('wp_enqueue_scripts', 'enqueue_woocommerce_ajax_scripts'); |
||||||
|
function enqueue_woocommerce_ajax_scripts() { |
||||||
|
wp_localize_script('jquery', 'woocommerce_params', array( |
||||||
|
'ajax_url' => admin_url('admin-ajax.php'), |
||||||
|
'currency_symbol' => get_woocommerce_currency_symbol(), |
||||||
|
'currency_format' => str_replace(array('%1$s', '%2$s'), array('%s', '%v'), get_woocommerce_price_format()), |
||||||
|
'i18n_restore_item' => pll_e('Восстановить', 'woocommerce') |
||||||
|
)); |
||||||
|
} |
||||||
|
|
||||||
|
add_action('wp_ajax_remove_cart_item', 'handle_remove_cart_item'); |
||||||
|
add_action('wp_ajax_nopriv_remove_cart_item', 'handle_remove_cart_item'); |
||||||
|
|
||||||
|
function handle_remove_cart_item() { |
||||||
|
if (!isset($_POST['cart_item_key'])) { |
||||||
|
wp_send_json_error('Не указан ключ элемента корзины'); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
$cart_item_key = sanitize_text_field($_POST['cart_item_key']); |
||||||
|
$cart = WC()->cart; |
||||||
|
|
||||||
|
if ($cart->remove_cart_item($cart_item_key)) { |
||||||
|
wp_send_json_success(); |
||||||
|
} else { |
||||||
|
wp_send_json_error('Не удалось удалить товар из корзины'); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
|
||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="ru"> |
||||||
|
<head> |
||||||
|
{{ function('wp_head') }} |
||||||
|
<title>{{ function('wp_title') }} </title> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||||
|
</head> |
||||||
|
|
||||||
|
<body class="{{bodyClass}}"> |
||||||
|
|
||||||
|
|
||||||
|
{% include 'header.twig' %} |
||||||
|
|
||||||
|
<main class="{{ mainClass }}"> |
||||||
|
{% block content %} |
||||||
|
{% endblock %} |
||||||
|
{% include 'modal.twig' %} |
||||||
|
</main> |
||||||
|
|
||||||
|
{% include 'footer.twig' %} |
||||||
|
</div> |
||||||
|
{{ function('wp_footer') }} |
||||||
|
</body> |
||||||
|
</html> |
||||||
|
|
Loading…
Reference in new issue