Task 6991 | Правки Оформления заказа от 25.06.2025

pull/36/head
parent fcf828c11b
commit 2770ed3e9b
  1. 20
      wp-content/themes/cosmopet/global-functions/multilang-functions.php
  2. 1
      wp-content/themes/cosmopet/modules/shop/components/checkout/assets/css/checkout.css
  3. 69
      wp-content/themes/cosmopet/static/js/cdek-map.js
  4. 6
      wp-content/themes/cosmopet/templates/shop/checkout.twig

@ -1803,8 +1803,7 @@ pll_register_string('Запомнить меня', 'Запомнить меня'
add_action('wp_head', function () { add_action('wp_head', function () {
if (function_exists('pll_current_language')) { if (function_exists('pll_current_language')) {
$lang = pll_current_language(); $lang = pll_current_language();
$translations = [
$translations = [
'en' => [ 'en' => [
'name_required' => 'The name is required.', 'name_required' => 'The name is required.',
'email_invalid' => 'Email is incorrect.', 'email_invalid' => 'Email is incorrect.',
@ -1819,7 +1818,13 @@ add_action('wp_head', function () {
'shipping_method_missing' => 'No delivery method selected. Please check your address or contact the site administration for help.', 'shipping_method_missing' => 'No delivery method selected. Please check your address or contact the site administration for help.',
'change_address' => 'Change address', 'change_address' => 'Change address',
'shipping_updated' => 'Shipping methods will be updated during checkout.', 'shipping_updated' => 'Shipping methods will be updated during checkout.',
'coupon_applied' => 'Coupon applied: ' 'coupon_applied' => 'Coupon applied: ',
// 🔽 Новые строки из JS
'Choose pick-up' => 'Choose pick-up',
'Re-select pick-up' => 'Re-select pick-up',
'There are no CDEK pick-up points available in this direction, please select another delivery method' =>
'There are no CDEK pick-up points available in this direction, please select another delivery method'
], ],
'ru' => [ 'ru' => [
'name_required' => 'Поле имени обязательно для заполнения.', 'name_required' => 'Поле имени обязательно для заполнения.',
@ -1835,9 +1840,14 @@ add_action('wp_head', function () {
'shipping_method_missing' => 'Не выбран метод доставки. Пожалуйста перепроверьте ваш адрес или обратитесь за помощью к администрации сайта.', 'shipping_method_missing' => 'Не выбран метод доставки. Пожалуйста перепроверьте ваш адрес или обратитесь за помощью к администрации сайта.',
'change_address' => 'Изменить адрес', 'change_address' => 'Изменить адрес',
'shipping_updated' => 'Методы доставки будут обновлены в процессе оформления заказа.', 'shipping_updated' => 'Методы доставки будут обновлены в процессе оформления заказа.',
'coupon_applied' => 'Применен промокод: ' 'coupon_applied' => 'Применен промокод: ',
'Choose pick-up' => 'Выбрать пункт выдачи',
'Re-select pick-up' => 'Выбрать другой пункт выдачи',
'There are no CDEK pick-up points available in this direction, please select another delivery method' =>
'В этом направлении нет доступных пунктов выдачи CDEK, пожалуйста, выберите другой способ доставки'
] ]
]; ];
$current_translations = $translations[$lang] ?? $translations['en']; $current_translations = $translations[$lang] ?? $translations['en'];

@ -585,6 +585,7 @@
.form-agreement__check{ .form-agreement__check{
display: flex; display: flex;
align-items: center; align-items: center;
margin-top: 1rem;
} }
.form-agreement__square{ .form-agreement__square{
width: 18px; width: 18px;

@ -1,4 +1,11 @@
( () => { /*
Start: cdek-map.js
Перезапись стандартного скрипта от cdek плагина для подключения дополнительной логики обработчиков
*/
(() => {
"use strict"; "use strict";
var e = { var e = {
n: t => { n: t => {
@ -7,33 +14,31 @@
a: o a: o
}), }),
o o
} },
,
d: (t, o) => { d: (t, o) => {
for (var n in o) for (var n in o)
e.o(o, n) && !e.o(t, n) && Object.defineProperty(t, n, { e.o(o, n) && !e.o(t, n) && Object.defineProperty(t, n, {
enumerable: !0, enumerable: !0,
get: o[n] get: o[n]
}) })
} },
,
o: (e, t) => Object.prototype.hasOwnProperty.call(e, t) o: (e, t) => Object.prototype.hasOwnProperty.call(e, t)
}; };
const t = window.jQuery; const t = window.jQuery;
var o = e.n(t); var o = e.n(t);
const n = window.CDEKWidget; const n = window.CDEKWidget;
var i = e.n(n); var i = e.n(n);
const c = window.wp.i18n const c = window.wp.i18n,
, d = window.lodash d = window.lodash,
, r = o()("#billing_city") r = o()("#billing_city"),
, a = o()("#shipping_city") a = o()("#shipping_city"),
, l = "aria-small"; l = "aria-small";
const h = (e, t, n) => { const h = (e, t, n) => {
console.log("Widget object:", g); console.log("Widget object:", g);
console.log("g.close is", typeof g.close); console.log("g.close is", typeof g.close);
o()(".cdek-office-code").val(n.code); o()(".cdek-office-code").val(n.code);
u.find("a").html((0, c.__)("Re-select pick-up", "cdekdelivery")); u.find("a").html(window.langData.translations["Re-select pick-up"] || "Re-select pick-up");
const i = u.parent().children(".cdek-office-info"); const i = u.parent().children(".cdek-office-info");
if (i.length === 0) { if (i.length === 0) {
@ -56,16 +61,15 @@
code: n.code code: n.code
}); });
} }
}; };
let s, p, u, g = null; let s, p, u, g = null;
"" === (r.val() || "") && "" === (a.val() || "") || (console.debug("[CDEK-MAP] City has value, initiating checkout update"), "" === (r.val() || "") && "" === (a.val() || "") || (console.debug("[CDEK-MAP] City has value, initiating checkout update"),
o()(document.body).trigger("update_checkout")); o()(document.body).trigger("update_checkout"));
const v = (e, t=null) => { const v = (e, t = null) => {
if (console.debug("[CDEK-MAP] Removing selected office info"), if (console.debug("[CDEK-MAP] Removing selected office info"),
o()(".cdek-office-info").remove(), o()(".cdek-office-info").remove(),
e.find("a").html((0, e.find("a").html(window.langData.translations["Choose pick-up"] || "Choose pick-up"),
c.__)("Choose pick-up", "cdekdelivery")),
o()(".cdek-office-code").val(""), o()(".cdek-office-code").val(""),
null !== g && g.clearSelection(), null !== g && g.clearSelection(),
"string" == typeof t) { "string" == typeof t) {
@ -74,37 +78,34 @@
e.prev().text(t), e.prev().text(t),
e.remove() e.remove()
} }
} },
, f = (0, f = (0,
d.debounce)(( () => { d.debounce)((() => {
"" !== (o()("#ship-to-different-address-checkbox").is(":checked") ? a.val() : r.val()) && (console.debug("[CDEK-MAP] City or postcode changed, initiating checkout update"), "" !== (o()("#ship-to-different-address-checkbox").is(":checked") ? a.val() : r.val()) && (console.debug("[CDEK-MAP] City or postcode changed, initiating checkout update"),
void 0 !== window.cdek.saver && o().post(window.cdek.saver, { void 0 !== window.cdek.saver && o().post(window.cdek.saver, {
code: null code: null
}), }),
o()(document.body).trigger("update_checkout")) o()(document.body).trigger("update_checkout"))
} }), 500),
), 500) b = new ResizeObserver((e => {
, b = new ResizeObserver((e => {
for (const t of e) for (const t of e)
"contentRect"in t && "target"in t && (t.contentRect.width < 160 ? p && (p = !1, "contentRect" in t && "target" in t && (t.contentRect.width < 160 ? p && (p = !1,
s = !0) : p || (p = !0, s = !0) : p || (p = !0,
s = !0), s = !0),
s && (p ? t.target.hasAttribute(l) && t.target.removeAttribute(l) : t.target.hasAttribute(l) || t.target.setAttribute(l, ""), s && (p ? t.target.hasAttribute(l) && t.target.removeAttribute(l) : t.target.hasAttribute(l) || t.target.setAttribute(l, ""),
s = !1)) s = !1))
} }));
));
o()(document.body).on("input", "#billing_city, #billing_postcode, #shipping_city, #shipping_postcode", f).on("updated_checkout", ( () => { o()(document.body).on("input", "#billing_city, #billing_postcode, #shipping_city, #shipping_postcode", f).on("updated_checkout", (() => {
const e = document.querySelector(".open-pvz-btn"); const e = document.querySelector(".open-pvz-btn");
null !== g && (console.debug("[CDEK-MAP] Clearing widget selection"), null !== g && (console.debug("[CDEK-MAP] Clearing widget selection"),
g.clearSelection()), g.clearSelection()),
e && (s = !1, e && (s = !1,
p = !0, p = !0,
b.observe(e)) b.observe(e))
} })).on("change", ".shipping_method", (() => o()(document.body).trigger("update_checkout"))).on("click", ".open-pvz-btn", null, (e => {
)).on("change", ".shipping_method", ( () => o()(document.body).trigger("update_checkout"))).on("click", ".open-pvz-btn", null, (e => {
u = "A" === e.target.tagName ? o()(e.target.parentElement) : o()(e.target), u = "A" === e.target.tagName ? o()(e.target.parentElement) : o()(e.target),
v(u); v(u);
try { try {
@ -112,9 +113,8 @@
if (console.debug("[CDEK-MAP] Got points from backend", e), if (console.debug("[CDEK-MAP] Got points from backend", e),
!e.length) !e.length)
return console.warn("[CDEK-MAP] Backend points are empty"), return console.warn("[CDEK-MAP] Backend points are empty"),
void v(u, (0, void v(u, window.langData.translations["There are no CDEK pick-up points available in this direction, please select another delivery method"] || "There are no CDEK pick-up points available in this direction, please select another delivery method");
c.__)("There are no CDEK pick-up points available in this direction, please select another delivery method", "cdekdelivery")); null === g ? g = new(i())({
null === g ? g = new (i())({
apiKey: window.cdek.key, apiKey: window.cdek.key,
popup: !0, popup: !0,
debug: !0, debug: !0,
@ -130,10 +130,7 @@
g.open() g.open()
} catch (e) { } catch (e) {
console.error("[CDEK-MAP] SyntaxError during points parse"), console.error("[CDEK-MAP] SyntaxError during points parse"),
v(u, (0, v(u, window.langData.translations["There are no CDEK pick-up points available in this direction, please select another delivery method"] || "There are no CDEK pick-up points available in this direction, please select another delivery method")
c.__)("There are no CDEK pick-up points available in this direction, please select another delivery method", "cdekdelivery"))
}
} }
)) }))
} })();
)();

@ -21,12 +21,12 @@
<div class="order-contacts__form"> <div class="order-contacts__form">
{{ fn('do_action', 'woocommerce_checkout_billing') }} {{ fn('do_action', 'woocommerce_checkout_billing') }}
{% if not fn('is_user_logged_in') %} {% if not fn('is_user_logged_in') %}
<div class="form-agreement__check"> <label for="reg" class="form-agreement__check">
<input id="reg" type="checkbox" name="reg" value="1" class="form-agreement__input"> <input id="reg" type="checkbox" name="reg" value="1" class="form-agreement__input">
<div class="form-agreement__square"> <div class="form-agreement__square">
</div> </div>
<label for="reg" class="form-agreement__label">{{ fn('pll_e', 'Запомнить меня') }}</label> <span class="form-agreement__label">{{ fn('pll_e', 'Запомнить меня') }}</span>
</div> </label>
{% endif %} {% endif %}
</div> </div>

Loading…
Cancel
Save