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

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

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

  1. Igorloki

    Igorloki

    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Помогите, так и не дает вбить валюту, требует там только цифры
     
  2. ADv

    ADv Местный

    Сообщения:
    430
    Симпатии:
    110
    Баллы:
    43
    Уберите проверку is_numeric
     
  3. alextwinner

    alextwinner

    Сообщения:
    22
    Симпатии:
    2
    Баллы:
    3
    мне что то похожее но много проще! ) подскажие как изменить этот код или есть готовое решение?

    Мне нужено просто возможность выбора для каждого товара своей валюты без всяких пересчетов!

    Т.е. есть базовая цена и я могу выбрать в чем ее отображать на сайте - в $ или рублях например и все!
     
  4. ciger

    ciger

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте!
    У меня не срабатыет добавление 2% к курсу, могли бы помочь с кодом. Делаю так:
    $custom_price = ($custom_price * 0,02) + $custom_price;
    round($custom_price, 2); // округляем до сотых, чтобы в regular_price не записывались огромные дроби

    Появляется пустой экран, помогите плиз
     
  5. Greezlee

    Greezlee

    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Нужно:
    round($custom_price, 2);
    Заменить на:
    $custom_price = round($custom_price, 2);
     
  6. ciger

    ciger

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Не работает ((
    Делаю так:
    $custom_price = ($custom_price * 0,02) + $custom_price;
    $custom_price = round($custom_price, 2);
     
  7. ciger

    ciger

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Как с помощью WP ALL IMPORT
    импортировать цены в разных валютах?
    Произвольными полями типа
    _rub_price
    _usd_price
    _euro_price

    Правильно или нет подскажите, очень хочется импортировать прайс правильно.
     
  8. Greezlee

    Greezlee

    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    А без округления код работает?
     
  9. Greezlee

    Greezlee

    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Для WP ALL IMPORT я переделывал весь этот код. Данный код не захотел работать как надо.
     
  10. ciger

    ciger

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    не работает

    $custom_price = ($custom_price * 0,02) + $custom_price;
    //round($custom_price, 2);
     
  11. ciger

    ciger

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Сейчас затестил, действительно не подтягивает _rub_price _usd_price через кастомные поля.
    Не могли бы поделиться, хочу затестить, если можно?
     
    Последнее редактирование: 10 авг 2016
  12. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Чтобы решить проблему нужно понять, что вызывает ошибку.
    Понимая в какой строке и какой код вызывает ошибку, можно ее устранить.
    Прочитайте как включить вывод ошибок в Wordpress.
     
    • Согласен Согласен x 1
  13. ciger

    ciger

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    1. Выдает ошибку, как можно поправить?
    [​IMG]
    funtions.php посмотрите кто может, очень нужна помошь
    http://sensis24.ru/functions.txt

    2. Как правильно импортировать товры с разными ценами правильно из WP All Import pro
    Может подскажете?
     
    Последнее редактирование: 10 авг 2016
  14. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    По ссылке ничего не открывается, т.е. 404 ошибка.
     
  15. ciger

    ciger

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Код:
    <?php
    // Разные цены для разных товаров
    
    function wc_myprice_product_field() {
    woocommerce_wp_text_input( array( 'id' => '_my_price', 'class' => 'wc_input_price short', 'label' => __( 'Стоимость', 'woocommerce' ) ) ); // добавляем поле "Стоимость"
    woocommerce_wp_text_input( array( 'id' => '_curency_price', 'class' => 'wc_input_price short', 'label' => __( 'Валюта', 'woocommerce' ) ) ); // добавляем поле "Валюта", где указываем только RUB, USD или EUR, по желанию можно добавить новые значения или переделать это поле в выпадающий список
    }
    add_action( 'woocommerce_product_options_pricing', 'wc_myprice_product_field' );
    
    
    function wc_myprice_save_product( $product_id ) {
    if ( ( $_POST['_my_price'] ) ) {
    if ( is_numeric( $_POST['_my_price'] ) )
    update_post_meta( $product_id, '_my_price', $_POST['_my_price'] );
    } else delete_post_meta( $product_id, '_my_price' );
    
    if ( ( $_POST['_curency_price'] ) ) {
    update_post_meta( $product_id, '_curency_price', $_POST['_curency_price'] );
    } else delete_post_meta( $product_id, '_curency_price' );
    }
    add_action( 'save_post', 'wc_myprice_save_product' );
    
    
    function wc_myprice_show() {
    global $product, $post;
    // Ничего не предпринимаем для вариативных товаров
    //if ( $product->product_type <> 'variable' ) {
    $my_price = get_post_meta( $product->id, '_my_price', true );
    $curency = get_post_meta( $product->id, '_curency_price', true );
    // woocommerce_price( $RUB )
    
    $blogtime = current_time('mysql'); // записываем текущее время и дату
    list( $today_year, $today_month, $today_day, $hour, $minute, $second ) = split( '([^0-9])', $blogtime ); //сохраняем отдельно значения даты, часов, минут и т.д.
    
    if ($hour == 7 || $hour == 12 || $hour == 17 || $hour == 22 || $hour == 1 || $hour == 4) { // указываем на протяжении каких часов мы обновляем (перезаписываем) курс на новый
    $data="var=go";
    $fp = fsockopen("sensis24.ru", 80, $errno, $errstr, 10); // открыть указанный хост по 80 порту
    $out = "POST /currency/get-currency.php HTTP/1.1\n"; // открыть данный скрипт
    $out .= "Host: sensis24.ru\n";
    $out .= "Referer: sensis24.ru/\n";
    $out .= "User-Agent: Opera\n";
    $out .= "Content-Type: application/x-www-form-urlencoded\n";
    $out .= "Content-Length: ".strlen($data)."\n\n";
    $out .= $data."\n\n";
    fputs($fp, $out); // отправка данных принимающему скрипту
    fclose($fp);   
    }
     
    // открываем файл с курсом валют и записываем в массив
    $lines = file('http://sensis24.ru/currency.txt');
    
        if ($lines) {       
    // проверяем заполнено ли поле, если да, то умножаем на курс и записываем в $custom_price
    if ($curency == "RUB")
    {
        $custom_price = $my_price;
    }
    
    if ($curency == "USD")
    {
        $custom_price = $my_price * $lines[0];
    }
    
    if ($curency == "EUR")
    {
        $custom_price = $my_price * $lines[1];
    }
    $custom_price = round($custom_price, 2); // округляем до сотых, чтобы в regular_price не записывались огромные дроби
    
    update_post_meta( $post->ID, '_regular_price', $custom_price );
    update_post_meta( $post->ID, '_price', $custom_price );   
        }
    }
    
    add_action( 'woocommerce_get_regular_price', 'wc_myprice_show', 10 );
     
  16. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Чтобы отключить проверку в поле "Валюта" для ввода текста, н-р, USD
    Замените
    PHP:
    woocommerce_wp_text_input( array( 'id' => '_curency_price''class' => 'wc_input_price short''label' => __'Валюта''woocommerce' ) ) ); // добавляем поле "Валюта", где указываем только RUB, USD или EUR, по желанию можно добавить новые значения или переделать это поле в выпадающий список
    на
    PHP:
    woocommerce_wp_text_input( array( 'id' => '_curency_price''class' => 'wc_input_curency_price short''label' => __'Валюта''woocommerce' ) ) ); // добавляем поле "Валюта", где указываем только RUB, USD или EUR, по желанию можно добавить новые значения или переделать это поле в выпадающий список
    Т.е проверка на соответствие формату цены была по передаваемому классу 'wc_input_price'.
     
  17. ciger

    ciger

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Спасибо за оперативный ответ!
     
    Последнее редактирование: 10 авг 2016
  18. ciger

    ciger

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Сейчас стало возможным ввести валюту например USD.
    Но товар не отбражается. И категории тоже все кривые.Что можно попробывать дальше?
    http://sensis24.ru/catalog/

    Меня еще очень интересует возможность импорта через wp all import
    может кто за деньги переделает этот скрипт?
     
  19. Greezlee

    Greezlee

    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Могу сделать. Пришлите файл который загружаете, сделайте резервную копию сайта и пришлите личным сообщением логин и пароль администратора сайта.
     
  20. Ria

    Ria

    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    6
    Помогите разобраться пожалуйста, добавил поле валюта
    woocommerce_wp_text_input( array( 'id' => '_curency_price', 'class' => 'wc_input_curency_price short', 'label' => __( 'Валюта', 'woocommerce' ) ) );

    Скажем у меня там написано USD - как мне этот текст вывести правильно в категориях возле каждого товара, к примеру по умолчанию у нас стоит отображение цены и символ валюты:
    get_woocommerce_currency_symbol().$product->price;

    На что нужно заменить сам символ: get_woocommerce_currency_symbol() что бы у меня отображало то что я ввел в поле валюта