Статьи

Валюта в WooCommerce

  1. Де налаштувати валюту, встановлюємо базову валюту
  2. Як додати свою валюту
  3. Додавання кількох валют. Криптовалюта в WooCommerce
  4. Заміна знака валюти на літери
  5. Як зробити позначення валюти менше за розміром, ніж сама ціна? Або іншого кольору наприклад.
  6. Якщо потрібна мультивалютність (кілька валют з перемиканням)
  7. Відеоурок по валюті в WooCommerce
  8. Миша Рудрастих

Почну з дуже важливого моменту - майте на увазі, що ціна в WooCommerce це просто число. У базі даних вона зберігається просто як число. Якщо вам здається, що в базі даних може існувати якась абсолютна величина ціни в «основній валюті» і її похідні в інших валютах - як вам таке взагалі в голову могло прийти?

Валюта в Woo виконує дві основні функції:

  1. На сайті поруч з товаром, а також в адмінці у вас буде відображатися відповідний значок валюти.
  2. При використанні платіжних шлюзів код валюти вже буде коректно передаватися в платіжну систему.

Запам'ятайте ці два принципи, я постійно буду на них посилатися. 😉

Де налаштувати валюту, встановлюємо базову валюту


Ну перш за все вам запропонують налаштувати її ще при установці WooCommerce , Якщо ви цього не зробили в той момент або можливо вам захотілося переналаштувати її по-іншому, то просто перейдіть в налаштування Woo, валюта там на самій першій сторінці.

Власне на цій сторінці ви можете задати основну валюту магазину, налаштувати, де повинен відображатися символ валюти (зліва чи справа / с пропуском або без), вибрати знаки в якості роздільників тисяч і дрібних частин.

Насправді тут немає чогось, на чому потрібно детально зупинятися, все повинно бути зрозуміло і так, якщо ні, то ви завжди можете навести мишкою на питання і у вас з'явиться підказка.

Як додати свою валюту


З кожною новою версією WooCommerce починає підтримувати все більше валют, наприклад часто натикався в інтернеті на статті, про те, як додати до валют казахстанський тенге, але зараз вже цього робити не потрібно, так як він вже і так є в стандартному списку валют.

І тим не менше, якщо раптом вам знадобилася якась валюта, яка ще не підтримується, ви можете додати її за допомогою досить простого хука, який можна відправити навіть в functions.php вашої теми:

// спочатку ми додамо нашу валюту до загального масиву валют add_filter ( 'woocommerce_currencies', 'misha_add_valyuta'); function misha_add_valyuta ($ currencies) {$ currencies [ 'LA2'] = 'Адена'; return $ currencies; } // також будь-якій валюті потрібен якийсь символ add_filter ( 'woocommerce_currency_symbol', 'misha_add_valyuta_symbol', 10, 2); function misha_add_valyuta_symbol ($ valyuta_symbol, $ valyuta_code) {// я додав його через умова if // якщо потрібно додати кілька символів відразу, то оптимальніше звичайно switch () if ($ valyuta_code == 'LA2') {$ valyuta_symbol = 'а' ; // тут можна до речі відразу return 'a'; } Return $ valyuta_symbol; }

Чесно кажучи, не знаю, який валюти зараз в WooCommerce не вистачає, тому додав просто ліву, хоча ті, хто в темі, зрозуміють 😅 момент ностальгії.

До речі кажучи, символ валюти можна спробувати додати і через інший хук woocommerce_currency_symbols, докладніше про нього написано тут .

У підсумку ми отримали:

Додавання кількох валют. Криптовалюта в WooCommerce


А тепер спробуємо додати криптовалюта і не будемо прибирати ту, яку вже додали, наприклад Ефір (ETH) Ξ & # 926; (Хотів спочатку додати біткойни XBT але раптом усвідомив, що вони вже є в вукомерс 😁).

Тоді наш код зміниться наступним чином:

// спочатку ми додамо нашу валюту до загального масиву валют add_filter ( 'woocommerce_currencies', 'misha_add_valyuta'); function misha_add_valyuta ($ currencies) {$ currencies [ 'LA2'] = 'Адена'; // $ currencies [ 'XBT'] = 'біткойнов'; $ Currencies [ 'ETH'] = 'Ефір'; return $ currencies; } // символи add_filter ( 'woocommerce_currency_symbol', 'misha_add_valyuta_symbol', 10, 2); function misha_add_valyuta_symbol ($ valyuta_symbol, $ valyuta_code) {// як я вже говорив, якщо кілька символів, то оптимальніше switch () switch ($ valyuta_code) {case 'LA2': $ valyuta_symbol = 'a'; break; // case 'XBT': // $ valyuta_symbol = '₿'; // також можна & # 3647; // break; case 'ETH': $ valyuta_symbol = 'Ξ'; // або & # 926; break; } Return $ valyuta_symbol; }

Що стосується прийому платежів в криптовалюта, я рекомендую прочитати ще раз перший абзац цього поста, щоб зрозуміти, що настройка валюти на самому сайті грає найменшу роль, все залежить саме від плагінів платіжних шлюзів, які ви використовуєте. Якщо вони приймають криптовалюта, то супер🔥, якщо немає, то немає, і тут нічим не допоможеш, навіть якщо ви виставите біткойни в якості основної валюти сайту.

Заміна знака валюти на літери


Повернемося до старих добрих рублям 😂, яких до речі не було в 2012 році в плагіні.

Справа в тому, що ціни на товари відображаються з використанням значка ₽ & # 8381 ;, але швидше за все власники магазинів захочуть виводити її або як р., Або руб. Те ж саме до речі стосується і української гривні, людям звичніше позначення грн., Чим ₴ & # 8372; (Насправді тут навіть справа не звички, просто у деяких відвідувачів сайту ці символи можуть відображатися квадратами).

було:

Чи стане:

Робиться це дуже просто всього лише одним хуком:

add_filter ( 'woocommerce_currency_symbol', 'misha_symbol_to_bukvi', 9999, 2); function misha_symbol_to_bukvi ($ valyuta_symbol, $ valyuta_code) {if ($ valyuta_code === 'UAH') {return 'грн.' ; } If ($ valyuta_code === 'RUB') {return 'руб.' ; } Return $ valyuta_symbol; }

Як зробити позначення валюти менше за розміром, ніж сама ціна? Або іншого кольору наприклад.


І не обов'язково менше, може ви навпаки захочете зробити його більше або поміняти колір або щось ще - коротше кажучи, як додати довільне CSS оформлення.

У минулому прикладі ми розглянули хук, який дозволяє поміняти символ валюти на буквене позначення, але ж ніхто не заважає нам проштовхнути туди і HTML код! Наприклад взяти якийсь елемент <span> з довільним класом, а там вже ми можемо викручуватись з його CSS стилями як нам завгодно.

приклад:

add_filter ( 'woocommerce_currency_symbol', 'add_my_currency_symbol', 9999, 2); function add_my_currency_symbol ($ valyuta_symbol, $ valyuta_code) {if ($ valyuta_code === 'RUB') return '<span class = "rubvalut"> руб. </ span>'; return $ valyuta_symbol; }

Додавши для нього CSS щось типо font-size: small; color: # 888, я повертаюся до свого прикладу з рюкзаком:

Якщо потрібна мультивалютність (кілька валют з перемиканням)


Почну з поганих новин, на офіційному сайті, в документації WooCommerce написано, що плагін підтримує одночасно тільки одну основну валюту!

Також вони рекомендують визначити, наскільки необхідно вам на сайті використовувати кілька валют, можливо, якщо ви хочете продавати в кількох регіонах окремо, заповнити опису товарів на різних мовах, то вам може підійде варіант з використанням WordPress Мультисайт .

Ще в офіційній документації рекомендують поглянути на такі плагіни, як: Currency Converter Widget, MultilingualPress або WPML з розширенням WooCommerce Multilingual.

Крім того, я хочу вам запропонувати свій алгоритм зі створення подібного функціоналу, який я не тестіл, а просто взяв з голови:

  1. Перш за все вам потрібно зробити HTML віджет, в якому будемо можливість перемикання валют (можливо просто у вигляді списку <select>.
  2. Так як ціни ви в будь-якому випадку вказуєте тільки в одній валюті в WooCommerce, то наступним кроком вам потрібно прив'язати ваш віджет до якого-небудь сервісу, який дозволяє дізнаватися актуальні курси валют, наприклад можете спробувати безкоштовний fixer.io (на кшталт непоганий). Після асинхронного отримання даних з сервісу ми робимо відповідні заміни в DOM документа (я все ж за асинхронне підключення, якщо ви будете робити це через Курлов або щось подібне, то мені просто шкода ваш сайт, навіть якщо закешовану транзитами, можуть бути свої труднощі ).
  3. Залежно від змінної сесії або куки користувача, ми Законекть до фільтру woocommerce_currency, який є частиною функції get_woocommerce_currency () (Там він і описаний) і замінимо валюту на актуальну для цього конкретного користувача.

Сподіваюся, цей нехитрий алгоритм допоможе вам у створенні класного функціоналу 🔥

Відеоурок по валюті в WooCommerce

Миша Рудрастих

Вперше познайомився з WordPress в 2009 році. З 2014 року мене можна зустріти на WordCamp - офіційної конфе по WordPress, іноді там виступаю. Також в даний час веду курси по WordPress в Epic Skills .

Якщо вам потрібна допомога з вашим сайтом або може навіть розробка з нуля - пишіть мені .

Якщо вам здається, що в базі даних може існувати якась абсолютна величина ціни в «основній валюті» і її похідні в інших валютах - як вам таке взагалі в голову могло прийти?

Новости