PluginProbe ʕ •ᴥ•ʔ
Strong Testimonials / 3.2.8
Strong Testimonials v3.2.8
3.3.6 3.3.5 3.3.4 3.3.3 3.3.2 3.3.1 trunk 1.0.1 2.30.9 2.31.10 2.32 2.32.1 2.32.2 2.32.3 2.32.4 2.33 2.34 2.35 2.36 2.37 2.38 2.38.1 2.39 2.39.1 2.39.2 2.39.3 2.40.0 2.40.1 2.40.2 2.40.3 2.40.4 2.40.5 2.40.6 2.40.7 2.41.0 2.41.1 2.50.0 2.50.1 2.50.2 2.50.3 2.50.4 2.51.0 2.51.1 2.51.2 2.51.3 2.51.4 2.51.5 2.51.6 2.51.7 2.51.8 2.51.9 3.0.0 3.0.1 3.0.2 3.0.3 3.1.0 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.20 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.17 3.2.18 3.2.19 3.2.2 3.2.20 3.2.21 3.2.22 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.3.0
strong-testimonials / includes / post-types.php
strong-testimonials / includes Last commit date
elementor 1 year ago logs 1 year ago strong-testimonials-beaver-block 1 year ago submodules 1 year ago class-strong-gutemberg.php 1 year ago class-strong-log.php 1 year ago class-strong-mail.php 1 year ago class-strong-testimonials-average-shortcode.php 1 year ago class-strong-testimonials-count-shortcode.php 1 year ago class-strong-testimonials-form.php 1 year ago class-strong-testimonials-order.php 1 year ago class-strong-testimonials-privacy.php 1 year ago class-strong-testimonials-render.php 1 year ago class-strong-testimonials-templates.php 1 year ago class-strong-testimonials-view-shortcode.php 1 year ago class-strong-testimonials-view-widget.php 1 year ago class-strong-view-display.php 1 year ago class-strong-view-form.php 1 year ago class-strong-view-slideshow.php 1 year ago class-strong-view.php 1 year ago class-walker-strong-category-checklist-front.php 1 year ago deprecated.php 1 year ago filters.php 1 year ago functions-activation.php 1 year ago functions-content.php 1 year ago functions-image.php 1 year ago functions-rating.php 1 year ago functions-template-form.php 1 year ago functions-template.php 1 year ago functions-views.php 1 year ago functions.php 1 year ago l10n-polylang.php 1 year ago l10n-wpml.php 1 year ago post-types.php 1 year ago retro.php 1 year ago scripts.php 1 year ago
post-types.php
261 lines
1 <?php
2 /**
3 * Register Post Type and Taxonomy
4 *
5 * @since 1.4.0
6 * @since 1.8.0 $args['hierarchical'] => false
7 * @since 1.15.10 $args['exclude_from_search'] => false
8 * @since 2.4.0 Move 'custom-fields' to an option.
9 * Added 'wpmtst_testimonial_supports' filter.
10 * Added 'wpmtst_exclude_from_search' filter.
11 */
12 function wpmtst_register_cpt() {
13
14 if ( ! post_type_exists( 'wpm-testimonial' ) ) {
15 $args = wpmtst_get_cpt_defaults();
16
17 $args['labels'] = apply_filters( 'wpmtst_testimonial_labels', $args['labels'] );
18 $args['supports'] = apply_filters( 'wpmtst_testimonial_supports', $args['supports'] );
19 $args['exclude_from_search'] = apply_filters( 'wpmtst_exclude_from_search', $args['exclude_from_search'] );
20 $args['taxonomies'] = apply_filters( 'wpmtst_testimonial_taxonomies', $args['taxonomies'] );
21
22 //TODO error handling
23 register_post_type( 'wpm-testimonial', apply_filters( 'wpmtst_post_type', $args ) );
24 }
25
26 /**
27 * Our taxonomy.
28 */
29 if ( ! taxonomy_exists( 'wpm-testimonial-category' ) && apply_filters( 'wpmtst_register_taxonomy', true ) ) {
30 $args = wpmtst_get_tax_defaults();
31
32 $args['labels'] = apply_filters( 'wpmtst_taxonomy_labels', $args['labels'] );
33
34 register_taxonomy( 'wpm-testimonial-category', array( 'wpm-testimonial' ), apply_filters( 'wpmtst_taxonomy', $args ) );
35 }
36 }
37 // Less than 15 for WPML compatibility.
38 add_action( 'init', 'wpmtst_register_cpt', 12 );
39
40
41 /**
42 * Return default values for our custom post type.
43 *
44 * ---------------------------------------------------------------
45 * For the [restore default] button to work, every value needs
46 * a default value even if we are not overriding WordPress default
47 * because we can't fetch those defaults (yet).
48 * ---------------------------------------------------------------
49 *
50 * @return array|string
51 */
52 function wpmtst_get_cpt_defaults() {
53 $labels = array(
54 'name' => esc_html_x( 'Testimonials', 'post type general name', 'strong-testimonials' ),
55 'singular_name' => esc_html_x( 'Testimonial', 'post type singular name', 'strong-testimonials' ),
56 'add_new' => esc_html__( 'Add New', 'strong-testimonials' ),
57 'add_new_item' => esc_html__( 'Add New Testimonial', 'strong-testimonials' ),
58 'edit_item' => esc_html__( 'Edit Testimonial', 'strong-testimonials' ),
59 'new_item' => esc_html__( 'New Testimonial', 'strong-testimonials' ),
60 'view_item' => esc_html__( 'View Testimonial', 'strong-testimonials' ),
61 'view_items' => esc_html__( 'View Testimonials', 'strong-testimonials' ),
62 'search_items' => esc_html__( 'Search Testimonials', 'strong-testimonials' ),
63 'not_found' => esc_html__( 'Nothing Found', 'strong-testimonials' ),
64 'not_found_in_trash' => esc_html__( 'Nothing found in Trash', 'strong-testimonials' ),
65 'all_items' => esc_html__( 'All Testimonials', 'strong-testimonials' ),
66 'archives' => esc_html__( 'Testimonial Archives', 'strong-testimonials' ),
67 'attributes' => esc_html__( 'Attributes', 'strong-testimonials' ),
68 'insert_into_item' => esc_html__( 'Insert into testimonial', 'strong-testimonials' ),
69 'uploaded_to_this_item' => esc_html__( 'Uploaded to this testimonial', 'strong-testimonials' ),
70 'featured_image' => esc_html__( 'Featured Image', 'strong-testimonials' ),
71 'set_featured_image' => esc_html__( 'Set featured image', 'strong-testimonials' ),
72 'remove_featured_image' => esc_html__( 'Remove featured image', 'strong-testimonials' ),
73 'use_featured_image' => esc_html__( 'Use as featured image', 'strong-testimonials' ),
74 'filter_items_list' => esc_html__( 'Filter testimonials list', 'strong-testimonials' ),
75 'items_list_navigation' => esc_html__( 'Testimonials list navigation', 'strong-testimonials' ),
76 'items_list' => esc_html__( 'Testimonials list', 'strong-testimonials' ),
77 'menu_name' => esc_html_x( 'Testimonials', 'admin menu name', 'strong-testimonials' ),
78 'name_admin_bar' => esc_html_x( 'Testimonial', 'admin bar menu name', 'strong-testimonials' ),
79 );
80
81 $supports = array(
82 'title',
83 'excerpt',
84 'editor',
85 'thumbnail',
86 'page-attributes',
87 'comments',
88 );
89
90 $args = array(
91 'labels' => $labels,
92 'public' => true,
93 'hierarchical' => false,
94 'exclude_from_search' => false,
95 'show_ui' => true,
96 'show_in_menu' => true,
97 'show_in_nav_menus' => true,
98 'show_in_admin_bar' => true,
99 'menu_position' => 20,
100 'menu_icon' => 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iMzkiIHZpZXdCb3g9IjAgMCA1MCAzOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5LjE0MjkgNUM4LjU3MDIzIDUgMCAxMi4wODY3IDAgMjEuNDg0MUMwIDMwLjg4MTYgOC41NzAyMyAzNy45NjgzIDE5LjE0MjkgMzcuOTY4M0MyMy4zNTU2IDM3Ljk2ODMgMjcuMjQ4MiAzNy4yODc1IDMwLjQwOTggMzUuMjM3N0wzOC4yODU3IDM4LjVMMzUuMTE4OSAzMC44NTVDMzcuMTE4NiAyOC4xNjcyIDM4LjI4NTcgMjQuOTQ3MyAzOC4yODU3IDIxLjQ4NDFDMzguMjg1NyAxMi4wODY3IDI5LjcxNTUgNSAxOS4xNDI5IDVaTTExLjgwNDYgMjcuODY1MVYyNS43MzgxQzExLjgwNDYgMjUuNzM4MSAxMy45MzE2IDI0Ljc4MzggMTMuOTMxNiAyMy42MTExQzExLjU4MiAyMy42MTExIDkuNjc3NjMgMjEuNzA2NyA5LjY3NzYzIDE5LjM1NzFDOS42Nzc2MyAxNy4wMDc2IDExLjU4MiAxNS4xMDMyIDEzLjkzMTYgMTUuMTAzMkMxNi4yODEyIDE1LjEwMzIgMTguMTg1NiAxNy4wMDc2IDE4LjE4NTYgMTkuMzU3MUMxOC4xODU2IDIzLjYxMTEgMTQuOTk1MSAyNy44NjUxIDExLjgwNDYgMjcuODY1MVpNMjIuMjI2OCAyNy44NjUxVjI1LjczODFDMjIuMjI2OCAyNS43MzgxIDI0LjM1MzggMjQuNzgzOCAyNC4zNTM4IDIzLjYxMTFDMjIuMDA0MyAyMy42MTExIDIwLjA5OTggMjEuNzA2NyAyMC4wOTk4IDE5LjM1NzFDMjAuMDk5OCAxNy4wMDc2IDIyLjAwNDMgMTUuMTAzMiAyNC4zNTM4IDE1LjEwMzJDMjYuNzAzNCAxNS4xMDMyIDI4LjYwNzggMTcuMDA3NiAyOC42MDc4IDE5LjM1NzFDMjguNjA3OCAyMy42MTExIDI1LjQxNzMgMjcuODY1MSAyMi4yMjY4IDI3Ljg2NTFaIiBmaWxsPSIjNEIzQ0U0Ii8+CjxwYXRoIGQ9Ik00My43MDQyIDE4Ljc5MThMNDMuNzA0MiAxOC43OTE5QzQ0LjI4NDYgMTkuMTEwNyA0NC45OTc3IDE5LjA2MTQgNDUuNTI5IDE4LjY1NTVDNDYuMDUgMTguMjU5MyA0Ni4yOTEzIDE3LjYwNzYgNDYuMTg4NSAxNi45ODE1QzQ2LjE4ODUgMTYuOTgxNCA0Ni4xODg1IDE2Ljk4MTMgNDYuMTg4NSAxNi45ODEyQzQ2LjE4ODQgMTYuOTgxMSA0Ni4xODg0IDE2Ljk4MSA0Ni4xODg0IDE2Ljk4MDlMNDUuNDcxIDEyLjYwMzNMNDguNTAyOCA5LjUwOTk5QzQ4LjUwMjkgOS41MDk5IDQ4LjUwMyA5LjUwOTggNDguNTAzMSA5LjUwOTdDNDguOTU3OCA5LjA0NTk3IDQ5LjEwOSA4LjM2OTA1IDQ4LjkyMSA3Ljc2Mjc5TDQ4LjkyMDYgNy43NjE2QzQ4LjczMDEgNy4xNTAzNyA0OC4yMTMyIDYuNjcyNjkgNDcuNTUyNSA2LjU3MTE0TDQ3LjU1MDkgNi41NzA5TDQzLjM5NzkgNS45Mzk0OEw0MS41MzE0IDEuOTgyMTNDNDEuNTMxMyAxLjk4MTk0IDQxLjUzMTIgMS45ODE3NSA0MS41MzExIDEuOTgxNTZDNDEuMjU0OCAxLjM5NTI4IDQwLjY2ODIgMSAzOS45OTg0IDFDMzkuMzI1MSAxIDM4Ljc0MTMgMS4zOTk4OCAzOC40NjY4IDEuOTgxTDM4LjQ2NjQgMS45ODE3OEwzNi42MDA5IDUuOTM5NTVMMzIuNDQ5IDYuNTcxMkwzMi40NDg1IDYuNTcxMjdDMzEuNzg1NyA2LjY3MjQ2IDMxLjI3MDEgNy4xNTE4NiAzMS4wNzk3IDcuNzYxMDNMMzEuMDc5MSA3Ljc2MzA1QzMwLjg5MTIgOC4zNjg3NCAzMS4wNDE4IDkuMDQ2MDMgMzEuNDk2OCA5LjUwOTlDMzEuNDk2OCA5LjUwOTkyIDMxLjQ5NjkgOS41MDk5MyAzMS40OTY5IDkuNTA5OTVDMzEuNDk3MSA5LjUxMDIxIDMxLjQ5NzQgOS41MTA0NyAzMS40OTc2IDkuNTEwNzNMMzQuNTI4MyAxMi42MDM2TDMzLjgxMTUgMTYuOTgxMkMzMy44MTE1IDE2Ljk4MTQgMzMuODExNSAxNi45ODE2IDMzLjgxMTQgMTYuOTgxOEMzMy44MTE0IDE2Ljk4MTkgMzMuODExNCAxNi45ODE5IDMzLjgxMTQgMTYuOTgxOUMzMy43MDg3IDE3LjYwOCAzMy45NDk3IDE4LjI1OTUgMzQuNDcxMSAxOC42NTZDMzQuNzcwOSAxOC44ODQ3IDM1LjEyOTQgMTkgMzUuNDg4NSAxOUMzNS43NjUgMTkgMzYuMDQzNiAxOC45MzE3IDM2LjI5NzEgMTguNzkxNkMzNi4yOTc3IDE4Ljc5MTMgMzYuMjk4MyAxOC43OTEgMzYuMjk4OSAxOC43OTA2TDM5Ljk5ODYgMTYuNzU1NUw0My43MDQyIDE4Ljc5MThaIiBmaWxsPSIjRkZCNDQzIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiLz4KPC9zdmc+Cg==',
101 'capability_type' => 'post',
102 'supports' => $supports,
103 'taxonomies' => array( 'wpm-testimonial-category' ),
104 'has_archive' => false,
105 'rewrite' => array(
106 'slug' => esc_html_x( 'testimonial', 'slug', 'strong-testimonials' ),
107 'with_front' => true,
108 'feeds' => false,
109 'pages' => true,
110 ),
111 'can_export' => true,
112 );
113
114 return $args;
115 }
116
117
118 /**
119 * Return our custom taxonomy default values.
120 *
121 * @since 2.30.0
122 *
123 * @return array
124 */
125 function wpmtst_get_tax_defaults() {
126 $labels = array(
127 'name' => esc_html__( 'Testimonial Categories', 'strong-testimonials' ),
128 'singular_name' => esc_html__( 'Testimonial Category', 'strong-testimonials' ),
129 'menu_name' => esc_html__( 'Categories', 'strong-testimonials' ),
130 'all_items' => esc_html__( 'All categories', 'strong-testimonials' ),
131 );
132
133 $args = array(
134 'labels' => $labels,
135 'hierarchical' => true,
136 'rewrite' => array( 'slug' => esc_html_x( 'testimonial-category', 'slug', 'strong-testimonials' ) ),
137 );
138
139 return $args;
140 }
141
142
143 /**
144 * Modify testimonial features.
145 *
146 * @since 2.4.0
147 * @param $supports
148 *
149 * @return array
150 */
151 function wpmtst_testimonial_supports( $supports ) {
152 $options = get_option( 'wpmtst_options' );
153
154 if ( isset( $options['support_custom_fields'] ) && $options['support_custom_fields'] ) {
155 $supports[] = 'custom-fields';
156 }
157
158 if ( isset( $options['support_comments'] ) && $options['support_comments'] ) {
159 $supports[] = 'comments';
160 }
161
162 return $supports;
163 }
164 add_filter( 'wpmtst_testimonial_supports', 'wpmtst_testimonial_supports' );
165
166
167 /**
168 * Filters the post updated messages.
169 *
170 * @param $messages
171 * @since 2.12.0
172 *
173 * @return mixed
174 */
175 function wpmtst_updated_messages( $messages ) {
176 global $post;
177
178 $preview_url = get_preview_post_link( $post );
179
180 $permalink = get_permalink( $post->ID );
181 if ( ! $permalink ) {
182 $permalink = '';
183 }
184
185 // TODO Use WordPress translations as a basis for adding these to existing translation files.
186 // Preview post link.
187 $preview_post_link_html = sprintf(
188 ' <a target="_blank" href="%1$s">%2$s</a>',
189 esc_url( $preview_url ),
190 esc_html__( 'Preview testimonial', 'strong-testimonials' )
191 );
192
193 // View post link.
194 $view_post_link_html = sprintf(
195 ' <a href="%1$s">%2$s</a>',
196 esc_url( $permalink ),
197 esc_html__( 'View testimonial', 'strong-testimonials' )
198 );
199
200 // Scheduled post preview link.
201 $scheduled_post_link_html = sprintf(
202 ' <a target="_blank" href="%1$s">%2$s</a>',
203 esc_url( $permalink ),
204 esc_html__( 'Preview testimonial', 'strong-testimonials' )
205 );
206
207 /* translators: Publish box date format, see https://secure.php.net/date */
208 $scheduled_date = date_i18n( 'M j, Y @ H:i', strtotime( $post->post_date ) );
209
210 $messages['wpm-testimonial'] = array(
211 0 => '', // Unused. Messages start at index 1.
212 1 => esc_html__( 'Testimonial updated.', 'strong-testimonials' ) . $view_post_link_html,
213 2 => esc_html__( 'Custom field updated.', 'strong-testimonials' ),
214 3 => esc_html__( 'Custom field deleted.', 'strong-testimonials' ),
215 4 => esc_html__( 'Testimonial updated.', 'strong-testimonials' ),
216 /* translators: %s: date and time of the revision */
217 5 => isset( $_GET['revision'] ) ? sprintf( esc_html__( 'Testimonial restored to revision from %s.', 'strong-testimonials' ), wp_post_revision_title( absint( $_GET['revision'] ), false ) ) : false,
218 6 => esc_html__( 'Testimonial published.', 'strong-testimonials' ) . $view_post_link_html,
219 7 => esc_html__( 'Testimonial saved.', 'strong-testimonials' ),
220 8 => esc_html__( 'Testimonial submitted.', 'strong-testimonials' ) . $preview_post_link_html,
221 /* translators: %s: date and time of the scheduled date */
222 9 => sprintf( esc_html__( 'Testimonial scheduled for: %s.', 'strong-testimonials' ), '<strong>' . $scheduled_date . '</strong>' ) . $scheduled_post_link_html,
223 10 => esc_html__( 'Testimonial draft updated.', 'strong-testimonials' ) . $preview_post_link_html,
224 );
225
226 return $messages;
227 }
228 add_filter( 'post_updated_messages', 'wpmtst_updated_messages' );
229
230
231 /**
232 * Filters the bulk action updated messages.
233 *
234 * By default, custom post types use the messages for the 'post' post type.
235 *
236 * @param $bulk_messages
237 * @param $bulk_counts
238 *
239 * @since 2.18.0
240 *
241 * @return mixed
242 */
243 function wpmtst_bulk_updated_messages( $bulk_messages, $bulk_counts ) {
244
245 $bulk_messages['wpm-testimonial'] = array(
246 // translators: %s is the number of testimonials that were updated.
247 'updated' => _n( '%s testimonial updated.', '%s testimonials updated.', $bulk_counts['updated'], 'strong-testimonials' ),
248 // translators: %s is the number of testimonials that were not updated because someone else is editing them.
249 'locked' => ( $bulk_counts['locked'] ) ? __( '1 testimonial not updated, somebody is editing it.', 'strong-testimonials' ) : _n( '%s testimonial not updated, somebody is editing it.', '%s testimonials not updated, somebody is editing them.', $bulk_counts['locked'], 'strong-testimonials' ),
250 // translators: %s is the number of testimonials that were permanently deleted.
251 'deleted' => _n( '%s testimonial permanently deleted.', '%s testimonials permanently deleted.', $bulk_counts['deleted'], 'strong-testimonials' ),
252 // translators: %s is the number of testimonials that were moved to the Trash.
253 'trashed' => _n( '%s testimonial moved to the Trash.', '%s testimonials moved to the Trash.', $bulk_counts['trashed'], 'strong-testimonials' ),
254 // translators: %s is the number of testimonials that were restored from the Trash.
255 'untrashed' => _n( '%s testimonial restored from the Trash.', '%s testimonials restored from the Trash.', $bulk_counts['untrashed'], 'strong-testimonials' ),
256 );
257
258 return $bulk_messages;
259 }
260 add_filter( 'bulk_post_updated_messages', 'wpmtst_bulk_updated_messages', 10, 2 );
261