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