Домой Каталог: Дополнения WP-Recall Groups Recall Виджет в группе "товары пользователя".
4ответ(ов) в теме
Krystina
не в сети 1 год
На сайте с 06.11.2016
Участник
Тем 103
Сообщения 339
1
11:06

Здравствуйте! Попробовала сделать виджет для группы. Получилось но не совсем то!
Не ругайте сильно за корявость из исходника переписала и дописала и вот что получилось:

<?php

add_action('init','rcl_group_add_rcl_shop_widget');
function rcl_group_add_rcl_shop_widget(){
    rcl_group_register_widget('Group_Rcl_Shop_Widget');
}

if(class_exists('Rcl_Group_Widget')){

    class Group_Rcl_Shop_Widget extends Rcl_Group_Widget {

        function Group_Rcl_Shop_Widget() { 
            parent::__construct( array(
                'widget_id'=>'group-shop-widget',
                'widget_title'=>'Цифровые товары',
                'widget_place'=>'content'
                )
            );
        }

        function widget($args,$instance) {
            
           if(!rcl_is_group_can('reader')) return false;

            extract( $args );

            global $rcl_group,$rcl_options;

            $defaults = array(
                'title' => 'Цифровые товары',
                'height' => 300,
                );

            $instance = wp_parse_args( (array) $instance, $defaults );
            
            echo $before;

            echo do_shortcode('[productlist type="slab" num="7"]');
			

            echo $after;
        }

        function options($instance){

            $defaults = array(
                'title' => 'Цифровые товары',
                'userslist' => 0,
                'avatar_size' => 40
            );

            $instance = wp_parse_args( (array) $instance, $defaults );

            echo '<label></label>'
                    . '<input type="text" name="'.$this->field_name('title').'" value="'.$instance['title'].'">';
            
            echo '<label>Размер аватарок</label>'
                    . '<input type="number" name="'.$this->field_name('avatar_size').'" value="'.$instance['avatar_size'].'">';

            echo '<label>Список участников</label>'
                . '<select name="'.$this->field_name('userslist').'">'
                . '<option value="0" '.selected(0,$instance['userslist'],false).'>Выключить</option>'
                . '<option value="1" '.selected(1,$instance['userslist'],false).'>Включить</option>'
                . '</select>';

        }

    }

}

Выводит в группу все товары магазина всех пользователей! Знаю что скорее всего многое не правильно в коде..... но работает!
Подскажите если возможность вывода товаров непосредственно администратора этой группы? Ещё раз не ругайте меня за корявость и надоедливость!

Заранее спасибо!

1
Андрей CS
не в сети 2 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
2
11:40

ругать тут не за что, наоборот, попытки грамотно использовать доступный функционал достойны похвалы.
Скорее всего, дело в атрибутах шорткода, которым товары выводятся (в вашем сообщении он не отобразился), попробуйте задать атрибут author со значением ИД администратора группы, делается так:

global $rcl_group;
echo do_shortcode('[ productlist author="'.$rcl_group->admin_id.'" ]');

пробелы внутри шорткода убрать.

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
3
11:41

do_shortcode - что он содержит?

0
Krystina
не в сети 1 год
На сайте с 06.11.2016
Участник
Тем 103
Сообщения 339
4
12:36

Андрей CS сказал(а)

ругать тут не за что, наоборот, попытки грамотно использовать доступный функционал достойны похвалы.
Скорее всего, дело в атрибутах шорткода, которым товары выводятся (в вашем сообщении он не отобразился), попробуйте задать атрибут author со значением ИД администратора группы, делается так:

global $rcl_group;
echo do_shortcode('[ productlist author="'.$rcl_group->admin_id.'" ]');

пробелы внутри шорткода убрать.

Огромное преогромное вам спасибо!!!!!!!!!!!!!!!

0
Тема закрыта. Публикация новых сообщений запрещена.