Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Woocommerce, каждому товару своя валюта

Тема в разделе "Плагины для WooCommerce", создана пользователем pagemaster, 7 окт 2015.

  1. pagemaster

    pagemaster

    Сообщения:
    30
    Симпатии:
    11
    Баллы:
    8
    без парсинга это вы о чем? Этот код просто добавляет 3 доп.поля для ввода цены, чтобы переделать под гривну нужно просто поле рубля переименовать под гривну. Так же, в вашем случае, нужно подтягивать курс уже с ЦБ Украины и умножать значения иностранных валют на курс ЦБ. В общем нужно переделывать =) простого переименования поля не хватит, так как доллары и евро будут переводится в рубли.
     
  2. aNg

    aNg

    Сообщения:
    35
    Симпатии:
    0
    Баллы:
    6
    я о том что мне не нужно подтягивать курсы, а достаточно задать его вручную (пускай даже в том же function.php)... тоесть я просто в поле долары записываю значение, оно умножается на константу и перезаписывает поле с ценой в гривне.
     
  3. pagemaster

    pagemaster

    Сообщения:
    30
    Симпатии:
    11
    Баллы:
    8
    тогда там нужно лишь удалить половину кода, который берет курс, переименовать поле рубля в гривну и присвоить переменной $custom_price значение курса, ну и получается убрать поле с евро =) все просто, если хоть немного знаете php
     
  4. aNg

    aNg

    Сообщения:
    35
    Симпатии:
    0
    Баллы:
    6
    Все получилось, только вот теперь не работает функция распродажи, это я что то не так сделал или у всех так?
     
  5. pagemaster

    pagemaster

    Сообщения:
    30
    Симпатии:
    11
    Баллы:
    8
    попробуйте перед кодом перезаписи цены дописать условие :
    Код:
    $sale_price = get_post_meta($post->ID, '_sale_price', true);
    if (!$sale_price) {
    //код перезаписи цены
    }
    правда могу ошибаться с _sale_price, возможно не то поле или называется по другому))
     
  6. Greezlee

    Greezlee

    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Спасибо за решение!
    Нашел парочку ошибок, делюсь исправлением:
    1. Чтобы округление до сотых работало, нужно строку:
    Код:
    round($custom_price, 2); // округляем до сотых, чтобы в regular_price не записывались огромные дроби
    заменить на:
    Код:
    $custom_price = round($custom_price, 2); // округляем до сотых, чтобы в regular_price не записывались огромные дроби
    2. Когда меняешь в админке кастомную цену (например USD) и сохраняешь товар, то при первом открытии товара, показывается старая цена записанная, в _regular_price и _price, и только после обновления страницы начинает отображаться рассчитанная по курсу цена.
    Я так понимаю, что происходит это из-за того, что на save_post Вы не повесили хук, который бы сразу обновлял стандартные цены при сохранении товара. Не подскажите решение? (в хуках не силен).
     
  7. Vitulechek

    Vitulechek

    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте! Может есть у кого опыт по женитьбе этого кода с интеграцией 1с (плагин WooCommerce and 1C:Enterprise (1С:Предприятие) Data Exchange). Не выгружает на сайт. В программинге не силен. Помогите, люди добрые!
     
  8. Greezlee

    Greezlee

    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    А что именно не выгружает на сайт? Цены или товары вообще?
     
  9. Vitulechek

    Vitulechek

    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Выгружаем все, и цены в том числе.
     
  10. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Сначала определите на какой стороне проблема. Для этого смотрите файлы выгрузки.
    Если в них нет цен, то проблема в 1с, иначе на стороне сайта.
     
  11. pagemaster

    pagemaster

    Сообщения:
    30
    Симпатии:
    11
    Баллы:
    8
    Все верно, этот косяк я поправил позже (еще не выкладывал новый код)
    Код:
    add_action( 'woocommerce_get_regular_price', 'wc_myprice_show', 10 );
    И, кстати, позже появилась проблема - сайт не мог получать курс от ЦБ России, видимо его забанили, пришлось все переделывать и выводить во внешний скрипт, который записывал курс в txt файл и только в определенные часы. Это помогло уменьшить нагрузку и избежать бан.
     
  12. pagemaster

    pagemaster

    Сообщения:
    30
    Симпатии:
    11
    Баллы:
    8
    Вот последняя версия "выносного" скрипта, который можно разместить на любом сервере.
    functions.txt - код, который добавляем в конец вашего functions, который находится в папке с шаблоном;
    get_currency.txt- код скрипта, который при запуске создает файл currency.txt с курсом доллара и евро

    P.S. Не забываем в коде с файла functions.txt изменить домен расположения скрипта get_currency.

    Ну и в functions.txt читайте комментарии к коду, там написано что теперь мы добавляем только 2 поля в woocommerce: это Стоимость и Валюта. В стоимость пишем число, в валюту указываем только RUB, USD или EUR, по желанию можно добавить новые значения или переделать это поле в выпадающий список для удобства. Сделал так, чтобы было удобнее обновлять эти поля через плагин WP All Import, а именно прайс Яндекс Маркета, где приходится указывать валюту.

    P.S.S. Ну и в functions я сделал самую простую версию запуска "по времени", её можно запросто удалить, а вместо неё запускать скрипт get_currency по крону.

    P.S.S.S. Кому сильно помог, не откажусь от материальной поддержки)) ну или за денежку помогу все настроить у вас на сайте.
     

    Вложения:

    • functions.txt
      Размер файла:
      3,6 КБ
      Просмотров:
      55
    • get_currency.txt
      Размер файла:
      1,5 КБ
      Просмотров:
      40
    Последнее редактирование: 8 фев 2016
    • Нравится Нравится x 2
    • Победитель Победитель x 1
    • Симпатия Симпатия x 1
  13. mijamur

    mijamur

    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Кто может подсказать. у меня функция конвертации работает только если руками создам файл txt с курсум валют а скрипт get_currency.php не создает его. просто белый экран показывает echo строчки я в нем раскоментировал убрал if ($_POST) { стал показывать курс и файл создался))

    интересно чо сразу не создается время запуска ждет?
    Блин, у меня вопрос. Когда он цены меняет на всех товарах?

    все вопросы снимаю) научился пользоваться. спасибо огромное очень полезная штука
     
    Последнее редактирование: 4 мар 2016
  14. jamaster

    jamaster

    Сообщения:
    70
    Симпатии:
    2
    Баллы:
    8
    спасибо автору за проделанную работу) выше всяких похвал! но вот есть пожелание, кто сталкивался с проблемой при импорте через плагин Woo All Import Woo add-on там в шаблонах как можно вывести эти поля а то там базовое поле regular price, допольнительных полей нетю ( а хотелось видеть и там эти 3 поля
     
  15. jamaster

    jamaster

    Сообщения:
    70
    Симпатии:
    2
    Баллы:
    8
    кстати после добавления вашего кода! начали пропадать цены ранее добавленных товаров!!!
     
  16. sav33

    sav33

    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Подтверждаю.Есть такая байда
     
  17. sav33

    sav33

    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Так, по-моему все решается так .Цену нужно прописывать не в поле "Базовая цена", а в появившихся после установки допа к коду , полях:Рубли в рублях, еврики в евро, а баксы в баксах.Тогда вроде все работает корректно.
    ЗЫ.Кстати после обновления странички , цена из поля Рубль прописывается и в поле Базовая цена.Посмотрим, что будет дальше
     
    Последнее редактирование: 8 апр 2016
  18. Igorloki

    Igorloki

    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    у меня не дает ничего вбить в это поле, кроме цифр, как в цене
     
  19. mijamur

    mijamur

    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    не правильно что-то написал. все отлично работает.
    $lines = file('http://'); с этой строчкой проблемы были я в if запихал. это из-за хостинга я так понял
     
  20. Igorloki

    Igorloki

    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    А можешь пример показать? На примере вашего, рабочего, часть кода функции и где расположены файлы currency