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

Решено Разные валюты в ценах на товары

Тема в разделе "Ищу плагин, функционал", создана пользователем Ria, 14 сен 2016.

  1. Ria

    Ria

    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    6
    Подскажите, можно ли как-то организовать следующее, на пример есть товары, но нужно указать цены в разных валютах: Товар 1: цена 10 евро; Товар 2: цена 10 руб.; Товар 3 цена 10 usd;
    Выходит что каждого товара должна быть своя валюта в общем списке
     
  2. Ria

    Ria

    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    6
    P.S. либо устроило бы следующее: можно ли на странице добавления товара в поле
    Базовая цена самому вводить (текст для валюты), к примеру 8 usd 8 руб. (в общим разрешить вводить буквы в поле), а сам символ валюты я просто уберу для отображения
     
  3. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    • Нравится Нравится x 2
  4. Ria

    Ria

    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    6
    Спасибо, сейчас ознакомлюсь, подскажите пожалуйста, по моему посту второму в этой теме: "
    устроило бы следующее: можно ли на странице добавления товара в поле
    Базовая цена самому вводить (текст для валюты), к примеру 8 usd 8 руб. (в общим разрешить вводить буквы в поле), а сам символ валюты я просто уберу для отображения"

    Можно как-то разрешить вводить буквы/символы в поле базовая цена? Мне этот вариант был бы в идеале

    Или еще лучше - добавить пустое поле для текста и выводить его рядом с ценой в одну строчку
     
  5. Ria

    Ria

    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    6
    Сам задаю вопросы, а потом сам себе даю ответы :) В общим так, добавил я дополнительное поле на странице добавления товара в админке, вывожу его, все работает, остаеться вопрос: как можно разрешить в это поле вводить буквы и символы, а то запрашивает только ввод цифр. (сделал по примеру который нашел здесь на форуме): http://wpincode.com/proizvolnye-polya-v-woocommerce/
     
  6. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    В теме для прочтения есть ответ как снять ограничение на цифры с помощью передаваемого класса.
     
  7. Ria

    Ria

    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    6
    Спасибо, получилось, а не подскажите, в каком файле подправить нужно что бы именно в строке Базовая цена можно было текст ввести? Не могу найти что-то(
     
  8. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    553
    Баллы:
    113
    Вносить в "базовая цена" что-то кроме цифр не совсем верно. Поле может использоваться не только для показа цены, но и для операций сравнения и т.д. Т.е. в этом поле должно быть только числовое значение.
    Добавьте дополнительное поле и назовите его "Валюта товара", в которое вносите валюту товара (USD, EUR и т.д.).
    При выводе цены у товара анализируйте поле валюта и пересчитывайте цену по нужному курсу валюты.
    Тема Автоматический пересчет цен по курсу Вам в помощь.
     
    • Нравится Нравится x 1
  9. Ria

    Ria

    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    6
    Ребята, помогите пожалуйста разобраться, ничего не могу понять и ничего не выходит: как это все сделать?

    1. Вывести в админке товара только одно дополнительное поле (например: "Валюта"!!!)

    2. Вывести это значение в товарах (например как выводиться символ валют get_currency_symbol() ) как правильно этот запрос сформировать для доп.поля?

    Помогите пожалуйста, как правильно прописать в functions.php (это дополнительное поле ОДНО) и каким запросом выводить на страницах магазина. P.S. пересчет по курсам не нужен! Только ОДНО ПОЛЕ и его вывод!!!
     
  10. Ria

    Ria

    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    6
    Начал с самого начала :) Уже есть подвижки, добавляем произвольное поле с вводом текста и сохраняем его:
    Код:
    add_action( 'woocommerce_product_options_general_product_data', 'wc_rooms_product_field' );
      function wc_rooms_product_field() {
      woocommerce_wp_text_input( array( 'id' => 'rooms', 'class' => 'wc_input_curency_price short', 'label' => __( 'Валюта', 'woocommerce' ) . ' ' ) );
      }
     
    add_action( 'save_post', 'wc_rooms_save_product' );
      function wc_rooms_save_product( $product_id ) {
        // Если это автосохранение, то ничего не делаем, сохраняем данные только при нажатии на кнопку Обновить
        if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
        if ( isset( $_POST['rooms'] ) ) { update_post_meta( $product_id, 'rooms', $_POST['rooms'] );
      } else delete_post_meta( $product_id, 'rooms' );
      }
    Все ок! Поле добавилось, значение сохранилось! То что нужно!
    Далее есть проблемка, например если я добавлю в price.php в эту строчку:
    Код:
    <p class="price"><?php echo $product->get_price_html(); ?></p>
    например так:
    Код:
    <p class="price"><?php echo $product->get_price_html(); ?> <?php echo '<span class="woocommerce-price">' .get_post_meta( $product->id, 'rooms', true ); '</span>'; ?></p>
    То у меня все отлично выводит (именно то значение которое я написал в доп.текстовое поле.

    Так вот проблема, мне нужно это же значение прописать в wc-formatting-functions.php в эту строчку:
    Код:
        $formatted_price = ( $negative ? '-' : '' ) . sprintf( $price_format, '<span class="woocommerce-Price-currencySymbol">' . get_woocommerce_currency_symbol( $currency ) . '</span>', $price );
    Вместо <span class="woocommerce-Price-currencySymbol">' . get_woocommerce_currency_symbol( $currency ) . '</span>
    я добавляю <span class="woocommerce-price">' .get_post_meta( $product->id, 'rooms', true ). '</span>

    И тут ничего не происходит - не выводит здесь текст из доп. поля. Подскажите пожалуйста, как поправить нужно?
     
  11. Ria

    Ria

    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    6
    Дайте пожалуйста совет) Как правильно вывести это значение в wc-formatting-functions.php?

    Просто показывать поле на самом сайте работает:

    Код:
    /*************Показываем поле на самом сайте********/
    add_action( 'woocommerce_single_product_summary', 'wc_rooms_show', 15 );
      function wc_rooms_show() { global $product;
        // Ничего не предпринимаем для вариативных товаров
        if ( $product->product_type <> 'variable' ) {$rooms = get_post_meta( $product->id, 'rooms', true );
          echo '<div style="width: 72%; height: 0; border-bottom: 1px dotted violet;">&nbsp;</div> <div class="woocommerce_msrp">';
          _e( 'Валюта: ', 'woocommerce' );
          echo '<span class="woocommerce-rooms-price">' . woocommerce_clean( $rooms ) . '</span>';
          echo '</div>';
        }
      } 
    Пробовал и так: $rooms = get_post_meta( $product->id, 'rooms', true ) - все равно пусто(