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

Оформление страницы "Продукта"

Тема в разделе "Вопросы, советы и доработки.", создана пользователем cooledit, 10 ноя 2014.

  1. cooledit

    cooledit

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Добрый день форумчане. Нужна помощь в оформлении магазина. Нашел способ использовать таблицу в вариативном товаре, что очень помогло, но остались недоработки. Вариация отображается как slug, а надо чтобы отображалось типа "Вид: НАЗВАНИЕ, Вес: НУЖНЫЙ ВЕС". И для страницы с одним товаром надо такое оформление, как у вариативного - т.е. в виде таблицы.
     

    Вложения:

  2. cooledit

    cooledit

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Кстати, вариативный товар в виде таблицы:

    Код:
    function woocommerce_variable_add_to_cart(){
        global $product, $post;
        $variations = find_valid_variations();
        // Check if the special 'price_grid' meta is set, if it is, load the default template:
        if ( get_post_meta($post->ID, 'price_grid', true) ) {
            // Enqueue variation scripts
            wp_enqueue_script( 'wc-add-to-cart-variation' );
            // Load the template
            wc_get_template( 'single-product/add-to-cart/variable.php', array(
                    'available_variations'  => $product->get_available_variations(),
                    'attributes'            => $product->get_variation_attributes(),
                    'selected_attributes'   => $product->get_variation_default_attributes()
                ) );
            return;
        }
        // Cool, lets do our own template!
        ?>
        <table class="variations variations-grid" cellspacing="0">
            <tbody>
                <?php
                foreach ($variations as $key => $value) {
                    if( !$value['variation_is_visible'] ) continue;
                ?>
                <tr>
                    <td>
                        <?php foreach($value['attributes'] as $key => $val ) {
                            $val = str_replace(array('-','_'), ' ', $val);
                            printf( '<span class="attr attr-%s">%s</span>', $key, ucwords($val) );
                        } ?>
                    </td>
                    <td>
                        <?php echo $value['price_html'];?>
                    </td>
                    <td>
                        <?php if( $value['is_in_stock'] ) { ?>
                        <form class="cart" action="<?php echo esc_url( $product->add_to_cart_url() ); ?>" method="post" enctype='multipart/form-data'>
                            <?php woocommerce_quantity_input(); ?>
                            <?php
                            if(!empty($value['attributes'])){
                                foreach ($value['attributes'] as $attr_key => $attr_value) {
                                ?>
                                <input type="hidden" name="<?php echo $attr_key?>" value="<?php echo $attr_value?>">
                                <?php
                                }
                            }
                            ?>
                            <button type="submit" class="single_add_to_cart_button btn btn-primary"><span class="glyphicon glyphicon-tag"></span> Add to cart</button>
                            <input type="hidden" name="variation_id" value="<?php echo $value['variation_id']?>" />
                            <input type="hidden" name="product_id" value="<?php echo esc_attr( $post->ID ); ?>" />
                            <input type="hidden" name="add-to-cart" value="<?php echo esc_attr( $post->ID ); ?>" />
                        </form>
                        <?php } else { ?>
                            <p class="stock out-of-stock"><?php _e( 'This product is currently out of stock and unavailable.', 'woocommerce' ); ?></p>
                        <?php } ?>
                    </td>
                </tr>
                <?php } ?>
            </tbody>
        </table>
        <?php
    }
    
    find_valid_variations loops through your product variations and fills in the ‘anys’
    
    
    function find_valid_variations() {
        global $product;
        $variations = $product->get_available_variations();
        $attributes = $product->get_attributes();
        $new_variants = array();
        // Loop through all variations
        foreach( $variations as $variation ) {
            // Peruse the attributes.
            // 1. If both are explicitly set, this is a valid variation
            // 2. If one is not set, that means any, and we must 'create' the rest.
            $valid = true; // so far
            foreach( $attributes as $slug => $args ) {
                if( array_key_exists("attribute_$slug", $variation['attributes']) && !empty($variation['attributes']["attribute_$slug"]) ) {
                    // Exists
                } else {
                    // Not exists, create
                    $valid = false; // it contains 'anys'
                    // loop through all options for the 'ANY' attribute, and add each
                    foreach( explode( '|', $attributes[$slug]['value']) as $attribute ) {
                        $attribute = trim( $attribute );
                        $new_variant = $variation;
                        $new_variant['attributes']["attribute_$slug"] = $attribute;
                        $new_variants[] = $new_variant;
                    }
                }
            }
            // This contains ALL set attributes, and is itself a 'valid' variation.
            if( $valid )
                $new_variants[] = $variation;
        }
        return $new_variants;
    }
     
  3. Stork.71

    Stork.71 Местный

    Сообщения:
    1.032
    Симпатии:
    254
    Баллы:
    83
    симпотичный кодик :)
    по ошибке ничего не подскажу: не программер. Хотя помнится частенько у народа возникали проблемы с выводом slug'a вместо названия свойств. Поищите по форуму, может найдете.
    Чтобы сделать обычный товар тоже с табличкой, попробуйте найти файлик woocommerce/templatessingle-product/add-to-cart/simple.php, и вместо блока form запихнуть блок table из вашего кода.
    Новый шаблон переместить в папку с темой.
     
    • Нравится Нравится x 1
  4. cooledit

    cooledit

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    OK попробую. Нужна помощь в таком функционале: wysiwyg - редактор для кастомного поля с выводом в кастом таб на странице продукта. поучилось сделать с textarea, но хочется расширенный редактор. пробовал с использованием wp-editor, результат не сохраняется.
    Кто-нибудь делал такое?
     
  5. Stork.71

    Stork.71 Местный

    Сообщения:
    1.032
    Симпатии:
    254
    Баллы:
    83
    а кастомные поля HTML поддерживают вообще?
    попробуйте чета написать в обычном wysiwyg редакторе, а потом код скопипастить в поле.
     
  6. cooledit

    cooledit

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    поддерживают и HTML и скрипты.... Когда надо сделать один пост подойдет и такое поле, а когда постить много - особенно, если участвуют таблицы - ... вообщем вы поняли....))
     
  7. cooledit

    cooledit

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Не получается вставить таблицу в указанный файлик, да и непонятно как это сделать. Может все таки есть программисты или люди которые делали подобное. Непонятно что именно надо вставлять в таблицу....
     
  8. cooledit

    cooledit

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Готов заплатить.....
     
  9. cooledit

    cooledit

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Решение пока не найдено, может все таки кто-нибудь из знающих встречал как можно в таблицу вставить данные которые меня интересуют?
     
  10. svens

    svens

    Сообщения:
    64
    Симпатии:
    4
    Баллы:
    8
    Здравствуйте не нашли ответ на Ваш вопрос?? Я столкнулся с той же проблемой, ищу решение)
     
  11. cooledit

    cooledit

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    К сожалению пока нет. Никто не знает как изменить дизайн одиночного продукта с вмешательством в код.
     
  12. svens

    svens

    Сообщения:
    64
    Симпатии:
    4
    Баллы:
    8
    А вот Ваш код вариативного товара в виде таблиц куда нужно ставить, мне вот как раз и нужна таблица с товаром.
     
  13. cooledit

    cooledit

    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Попробуйте вставить в function.php вашей темы...;)
     
  14. svens

    svens

    Сообщения:
    64
    Симпатии:
    4
    Баллы:
    8
    Хух разобрался, выдавало мне ошибку пока не удалил строчку
    "find_valid_variations loops through your product variations and fills in the ‘anys’"
    Вариативный товар теперь выводит таблицей, но как можно сделать чтоб не заходя в описание самого товара под товаром выводились варианты покупки товара а не как обычно цена с и до.???