@@ -253,16 +253,146 @@ class="dashicons dashicons-lock"></span></h2>
253
253
</form>
254
254
</ul>
255
255
</li>
256
- <?php echo apply_filters ( 'visualizer_pro_sidebar_footer_links ' , '' , $ this ->chart ->ID ); ?>
257
- <li class=" group bottom-fixed vz-pro-sidebar-link" id="vz-chart-permissions">
258
- <a target="_blank"><span class="dashicons dashicons-admin-users"></span><?php _e ( 'Permissions (PRO) ' , 'visualizer ' ); ?> </a>
259
- </li>
256
+
257
+ <?php $ this ->getPermissionsLink ( $ this ->chart ->ID ); ?>
258
+
260
259
<li class="group bottom-fixed" id="vz-chart-copyright">Visualizer © <?php echo date ( 'Y ' , current_time ( 'timestamp ' ) ); ?> </li>
261
260
</ul>
262
261
<?php
263
262
// changed by Ash/Upwork
264
263
}
265
264
265
+ /**
266
+ * Generates the permissions link.
267
+ *
268
+ * @access private
269
+ * @param int $id The chart id.
270
+ */
271
+ private function getPermissionsLink ( $ id ) {
272
+ $ permissions = apply_filters ( 'visualizer_pro_get_permissions ' , null , $ id );
273
+ if ( $ permissions ) {
274
+ foreach ( $ permissions as $ k => $ v ) {
275
+ $ this ->$ k = $ v ;
276
+ }
277
+ }
278
+ ?>
279
+ <li class="group group-category bottom-fixed sidebar-footer-link" id="vz-chart-permissions">
280
+ <a target="_blank"><span class="dashicons dashicons-admin-users"></span><?php _e ( 'Permissions (PRO) ' , 'visualizer ' ); ?> </a>
281
+ <div class="group-header">
282
+ <button class="customize-section-back" tabindex="0"></button>
283
+ <h3 class="group-title main-group"><?php _e ( 'Chart Settings ' , 'visualizer ' ); ?> </h3>
284
+ </div>
285
+ <ul class="group-content">
286
+ <form id="permissions-form" action="
287
+ <?php
288
+ echo add_query_arg (
289
+ array (
290
+ 'nonce ' => wp_create_nonce (),
291
+ 'tab ' => 'permissions ' ,
292
+ ), remove_query_arg ( 'tab ' , $ _SERVER ['REQUEST_URI ' ] )
293
+ );
294
+ ?>
295
+ " method="post">
296
+ <?php $ this ->permissionsSidebar (); ?>
297
+ </form>
298
+ </ul>
299
+ </li>
300
+ <?php
301
+ }
302
+
303
+ /**
304
+ * Generates the permissions form.
305
+ *
306
+ * @access private
307
+ */
308
+ private function permissionsSidebar () {
309
+ Visualizer_Render_Sidebar::_renderGroupStart (
310
+ esc_html__ ( 'Who can see this chart? ' , 'visualizer ' ) . '<span
311
+ class="dashicons dashicons-lock"></span> ' , '' , apply_filters ( 'visualizer_pro_upsell_class ' , 'only-pro-feature ' )
312
+ );
313
+ Visualizer_Render_Sidebar::_renderSectionStart ();
314
+ Visualizer_Render_Sidebar::_renderSectionDescription ( esc_html__ ( 'Select who can view the chart on the front-end. ' , 'visualizer ' ) );
315
+
316
+ if ( ! isset ( $ this ->permissions ['read ' ] ) ) {
317
+ $ this ->permissions ['read ' ] = 'all ' ;
318
+ }
319
+
320
+ Visualizer_Render_Sidebar::_renderSelectItem (
321
+ '' ,
322
+ 'permissions[read] ' ,
323
+ $ this ->permissions ['read ' ],
324
+ array (
325
+ 'all ' => esc_html__ ( 'All Users ' , 'visualizer ' ),
326
+ 'users ' => esc_html__ ( 'Select Users ' , 'visualizer ' ),
327
+ 'roles ' => esc_html__ ( 'Select Roles ' , 'visualizer ' ),
328
+ ),
329
+ '' ,
330
+ false ,
331
+ array ( 'visualizer-permission ' , 'visualizer-permission-type ' , 'visualizer-permission-read ' ),
332
+ array (
333
+ 'permission-type ' => 'read ' ,
334
+ )
335
+ );
336
+
337
+ $ options = apply_filters ( 'visualizer_pro_get_permissions_data ' , array (), isset ( $ this ->permissions ['read ' ] ) ? $ this ->permissions ['read ' ] : 'roles ' );
338
+
339
+ Visualizer_Render_Sidebar::_renderSelectItem (
340
+ '' ,
341
+ 'permissions[read-specific][] ' ,
342
+ isset ( $ this ->permissions ['read-specific ' ] ) ? $ this ->permissions ['read-specific ' ] : array (),
343
+ $ options ,
344
+ '' ,
345
+ true ,
346
+ array ( 'visualizer-permission ' , 'visualizer-permission-specific ' , 'visualizer-permission-read-specific ' )
347
+ );
348
+ Visualizer_Render_Sidebar::_renderSectionEnd ( apply_filters ( 'visualizer_pro_upsell ' , 'only-pro-feature ' , 'chart-permissions ' ) );
349
+ Visualizer_Render_Sidebar::_renderGroupEnd ();
350
+
351
+ Visualizer_Render_Sidebar::_renderGroupStart (
352
+ esc_html__ ( 'Who can edit this chart? ' , 'visualizer ' ) . '<span
353
+ class="dashicons dashicons-lock"></span> ' , '' , apply_filters ( 'visualizer_pro_upsell_class ' , 'only-pro-feature ' )
354
+ );
355
+ Visualizer_Render_Sidebar::_renderSectionStart ();
356
+ Visualizer_Render_Sidebar::_renderSectionDescription ( esc_html__ ( 'Select who can edit the chart on the front-end. ' , 'visualizer ' ) );
357
+
358
+ if ( ! isset ( $ this ->permissions ['edit ' ] ) ) {
359
+ $ this ->permissions ['edit ' ] = 'roles ' ;
360
+ $ this ->permissions ['edit-specific ' ] = 'administrator ' ;
361
+ }
362
+
363
+ Visualizer_Render_Sidebar::_renderSelectItem (
364
+ '' ,
365
+ 'permissions[edit] ' ,
366
+ $ this ->permissions ['edit ' ],
367
+ array (
368
+ 'all ' => esc_html__ ( 'All Users ' , 'visualizer ' ),
369
+ 'users ' => esc_html__ ( 'Select Users ' , 'visualizer ' ),
370
+ 'roles ' => esc_html__ ( 'Select Roles ' , 'visualizer ' ),
371
+ ),
372
+ '' ,
373
+ false ,
374
+ array ( 'visualizer-permission ' , 'visualizer-permission-type ' , 'visualizer-permission-edit ' ),
375
+ array (
376
+ 'permission-type ' => 'edit ' ,
377
+ )
378
+ );
379
+
380
+ $ options = apply_filters ( 'visualizer_pro_get_permissions_data ' , array (), isset ( $ this ->permissions ['edit ' ] ) ? $ this ->permissions ['edit ' ] : 'roles ' );
381
+
382
+ Visualizer_Render_Sidebar::_renderSelectItem (
383
+ '' ,
384
+ 'permissions[edit-specific][] ' ,
385
+ isset ( $ this ->permissions ['edit-specific ' ] ) ? $ this ->permissions ['edit-specific ' ] : array (),
386
+ $ options ,
387
+ '' ,
388
+ true ,
389
+ array ( 'visualizer-permission ' , 'visualizer-permission-specific ' , 'visualizer-permission-edit-specific ' )
390
+ );
391
+ Visualizer_Render_Sidebar::_renderSectionEnd ( apply_filters ( 'visualizer_pro_upsell ' , 'only-pro-feature ' , 'chart-permissions ' ) );
392
+ Visualizer_Render_Sidebar::_renderGroupEnd ();
393
+
394
+ }
395
+
266
396
/**
267
397
* Renders toolbar content.
268
398
*
0 commit comments