Test Failed
Push — develop ( 4db3e8...c07ba6 )
by Paul
08:09
created

FlatsomeSiteReviews::shortcodeClass()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
c 0
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Integrations\Flatsome;
4
5
use GeminiLabs\SiteReviews\Modules\Rating;
6
use GeminiLabs\SiteReviews\Shortcodes\SiteReviewsShortcode;
7
8
class FlatsomeSiteReviews extends FlatsomeShortcode
9
{
10
    public function options(): array
11
    {
12
        $options = [
13
            'glsr_group_limit' => [
14
                'type' => 'group',
15
                'heading' => esc_html_x('Limit Reviews By', 'admin-text', 'site-reviews'),
16
                'options' => [
17
                    'assigned_posts' => [
18
                        'type' => 'select',
19
                        'heading' => esc_html_x('Limit Reviews by Assigned Pages', 'admin-text', 'site-reviews'),
20
                        'full_width' => true,
21
                        'config' => [
22
                            'multiple' => true,
23
                            'placeholder' => esc_html_x('Select a Page...', 'admin-text', 'site-reviews'),
24
                            'postSelect' => 'assigned_posts_query',
25
                        ],
26
                    ],
27
                    'assigned_terms' => [
28
                        'type' => 'select',
29
                        'heading' => esc_html_x('Limit Reviews by Categories', 'admin-text', 'site-reviews'),
30
                        'default' => '',
31
                        'full_width' => true,
32
                        'config' => [
33
                            'multiple' => true,
34
                            'placeholder' => esc_html_x('Select a Category...', 'admin-text', 'site-reviews'),
35
                            'termSelect' => [
36
                                'taxonomies' => glsr()->taxonomy,
37
                            ],
38
                        ],
39
                    ],
40
                    'assigned_users' => [
41
                        'type' => 'select',
42
                        'heading' => esc_html_x('Limit Reviews by Assigned Users', 'admin-text', 'site-reviews'),
43
                        'default' => '',
44
                        'full_width' => true,
45
                        'config' => [
46
                            'multiple' => true,
47
                            'placeholder' => esc_html_x('Select a User...', 'admin-text', 'site-reviews'),
48
                            'postSelect' => 'assigned_users_query',
49
                        ],
50
                    ],
51
                    'terms' => [
52
                        'type' => 'select',
53
                        'heading' => esc_html_x('Limit Reviews by terms accepted', 'admin-text', 'site-reviews'),
54
                        'default' => '',
55
                        'full_width' => true,
56
                        'options' => [
57
                            '' => esc_html_x('Select Terms...', 'admin-text', 'site-reviews'),
58
                            'true' => esc_html_x('Terms were accepted', 'admin-text', 'site-reviews'),
59
                            'false' => esc_html_x('Terms were not accepted', 'admin-text', 'site-reviews'),
60
                        ],
61
                    ],
62
                ],
63
            ],
64
            'glsr_group_display' => [
65
                'type' => 'group',
66
                'heading' => esc_html_x('Display Options', 'admin-text', 'site-reviews'),
67
                'options' => [
68
                    'pagination' => [
69
                        'type' => 'select',
70
                        'heading' => esc_html_x('Pagination Type', 'admin-text', 'site-reviews'),
71
                        'default' => '',
72
                        'full_width' => true,
73
                        'options' => [
74
                            '' => esc_attr_x('No Pagination', 'admin-text', 'site-reviews'),
75
                            'loadmore' => esc_attr_x('Load More Button', 'admin-text', 'site-reviews'),
76
                            'ajax' => esc_attr_x('Pagination (AJAX)', 'admin-text', 'site-reviews'),
77
                            'true' => esc_attr_x('Pagination (with page reload)', 'admin-text', 'site-reviews'),
78
                        ],
79
                    ],
80
                    'display' => [
81
                        'type' => 'slider',
82
                        'heading' => esc_html_x('Reviews Per Page', 'admin-text', 'site-reviews'),
83
                        'default' => 10,
84
                        'max' => 50,
85
                        'min' => 1,
86
                        'full_width' => true,
87
                    ],
88
                    'rating' => [
89
                        'type' => 'slider',
90
                        'heading' => esc_html_x('Minimum Rating', 'admin-text', 'site-reviews'),
91
                        'default' => Rating::min(),
92
                        'max' => Rating::max(),
93
                        'min' => Rating::min(),
94
                        'full_width' => true,
95
                    ],
96
                    'schema' => [
97
                        'type' => 'radio-buttons',
98
                        'heading' => esc_html_x('Enable the schema?', 'admin-text', 'site-reviews'),
99
                        'description' => esc_html_x('The schema should only be enabled once on your page.', 'admin-text', 'site-reviews'),
100
                        'default' => '',
101
                        'full_width' => true,
102
                        'options' => [
103
                            '' => ['title' => _x('No', 'admin-text', 'site-reviews')],
104
                            'true' => ['title' => _x('Yes', 'admin-text', 'site-reviews')],
105
                        ],
106
                    ],
107
                ],
108
            ],
109
            'glsr_group_hide' => [
110
                'type' => 'group',
111
                'heading' => esc_html_x('Hide Options', 'admin-text', 'site-reviews'),
112
                'options' => $this->hideOptions(),
113
            ],
114
            'glsr_group_advanced' => [
115
                'type' => 'group',
116
                'heading' => esc_html_x('Advanced', 'admin-text', 'site-reviews'),
117
                'options' => [
118
                    'id' => [
119
                        'type' => 'textfield',
120
                        'heading' => esc_html_x('Custom ID', 'admin-text', 'site-reviews'),
121
                        'description' => esc_html_x('This should be a unique value.', 'admin-text', 'site-reviews'),
122
                        'full_width' => true,
123
                    ],
124
                    'class' => [
125
                        'type' => 'textfield',
126
                        'heading' => esc_html_x('Additional CSS classes', 'admin-text', 'site-reviews'),
127
                        'description' => esc_html_x('Separate multiple classes with spaces.', 'admin-text', 'site-reviews'),
128
                        'full_width' => true,
129
                    ],
130
                    'visibility' => [
131
                        'type' => 'select',
132
                        'heading' => esc_html_x('Visibility', 'admin-text', 'site-reviews'),
133
                        'default' => '',
134
                        'options' => [
135
                            '' => esc_html_x('Visible', 'admin-text', 'site-reviews'),
136
                            'hidden' => esc_html_x('Hidden', 'admin-text', 'site-reviews'),
137
                            'hide-for-medium' => esc_html_x('Only for Desktop', 'admin-text', 'site-reviews'),
138
                            'show-for-small' => esc_html_x('Only for Mobile', 'admin-text', 'site-reviews'),
139
                            'show-for-medium hide-for-small' => esc_html_x('Only for Tablet', 'admin-text', 'site-reviews'),
140
                            'show-for-medium' => esc_html_x('Hide for Desktop', 'admin-text', 'site-reviews'),
141
                            'hide-for-small' => esc_html_x('Hide for Mobile', 'admin-text', 'site-reviews'),
142
                        ],
143
                    ],
144
                ],
145
            ],
146
        ];
147
        if ($types = $this->typeOptions()) {
148
            $options['glsr_group_limit']['options']['type'] = $types;
149
        }
150
        return $options;
151
    }
152
153
    public static function shortcodeClass(): string
154
    {
155
        return SiteReviewsShortcode::class;
156
    }
157
158
    protected function icon(): string
159
    {
160
        return glsr()->url('assets/images/icons/flatsome/icon-reviews.svg');
161
    }
162
}
163