PluginProbe ʕ •ᴥ•ʔ
Royal Addons for Elementor – Addons and Templates Kit for Elementor / 1.7.1064
Royal Addons for Elementor – Addons and Templates Kit for Elementor v1.7.1064
1.7.1064 1.7.1063 1.7.1062 1.7.1061 1.7.1060 1.7.1059 1.7.1058 trunk 1.0.0 1.1.0 1.2 1.3 1.3.1 1.3.2 1.3.21 1.3.22 1.3.23 1.3.24 1.3.25 1.3.26 1.3.27 1.3.28 1.3.29 1.3.30 1.3.31 1.3.32 1.3.33 1.3.34 1.3.35 1.3.36 1.3.37 1.3.38 1.3.39 1.3.40 1.3.41 1.3.42 1.3.43 1.3.44 1.3.45 1.3.46 1.3.47 1.3.48 1.3.49 1.3.50 1.3.51 1.3.52 1.3.53 1.3.54 1.3.55 1.3.56 1.3.57 1.3.58 1.3.59 1.3.60 1.3.61 1.3.62 1.3.63 1.3.64 1.3.65 1.3.66 1.3.67 1.3.68 1.3.69 1.3.70 1.3.71 1.3.72 1.3.73 1.3.74 1.3.75 1.3.76 1.3.77 1.3.78 1.3.79 1.3.80 1.3.81 1.3.82 1.3.83 1.3.84 1.3.85 1.3.86 1.3.87 1.3.88 1.3.89 1.3.90 1.3.91 1.3.92 1.3.93 1.3.94 1.3.95 1.3.96 1.3.97 1.3.971 1.3.972 1.3.973 1.3.974 1.3.975 1.3.976 1.3.977 1.3.978 1.3.979 1.3.980 1.3.981 1.3.982 1.3.983 1.3.984 1.3.985 1.3.986 1.3.987 1.7.1 1.7.1001 1.7.1002 1.7.1003 1.7.1004 1.7.1005 1.7.1006 1.7.1007 1.7.1008 1.7.1009 1.7.1010 1.7.1011 1.7.1012 1.7.1013 1.7.1014 1.7.1015 1.7.1016 1.7.1017 1.7.1018 1.7.1019 1.7.1020 1.7.1021 1.7.1022 1.7.1023 1.7.1024 1.7.1025 1.7.1026 1.7.1027 1.7.1028 1.7.1029 1.7.1030 1.7.1031 1.7.1032 1.7.1033 1.7.1034 1.7.1035 1.7.1036 1.7.1037 1.7.1038 1.7.1039 1.7.1040 1.7.1041 1.7.1042 1.7.1043 1.7.1044 1.7.1045 1.7.1046 1.7.1047 1.7.1048 1.7.1049 1.7.1050 1.7.1051 1.7.1052 1.7.1053 1.7.1054 1.7.1055 1.7.1056 1.7.1057
royal-elementor-addons / admin / includes / wpr-templates-shortcode.php
royal-elementor-addons / admin / includes Last commit date
wpr-conditions-manager.php 5 days ago wpr-editor-hooks.php 5 days ago wpr-render-templates.php 5 days ago wpr-templates-actions.php 5 days ago wpr-templates-category-filter.php 5 days ago wpr-templates-library.php 5 days ago wpr-templates-loop.php 5 days ago wpr-templates-modal-popups.php 5 days ago wpr-templates-shortcode.php 5 days ago
wpr-templates-shortcode.php
74 lines
1 <?php
2
3 namespace WprAddons\Admin\Includes;
4
5 use Elementor;
6
7 if ( ! defined( 'ABSPATH' ) ) {
8 exit; // Exit if accessed directly.
9 }
10
11 /**
12 * WPR_Templates_Shortcode setup
13 *
14 * @since 1.0
15 */
16 class WPR_Templates_Shortcode {
17
18 public function __construct() {
19 add_shortcode( 'wpr-template', [ $this, 'shortcode' ] );
20
21 add_action('elementor/element/after_section_start', [ $this, 'extend_shortcode' ], 10, 3 );
22 }
23
24 public function shortcode( $attributes = [] ) {
25 if ( empty( $attributes['id'] ) ) {
26 return '';
27 } else {
28 $id = intval($attributes['id']);
29 }
30
31 // Ensure only publicly published posts can be accessed
32 $post = get_post($id);
33
34 if (!$post || $post->post_status !== 'publish' || in_array($post->post_status, ['draft', 'private', 'future'])) {
35 return 'You do not have permission to view this post.';
36 }
37
38 // Optionally check if the post is password protected
39 if (post_password_required($post)) {
40 return 'This post is password protected.';
41 }
42
43 // WPML language handling
44 if (defined('ICL_LANGUAGE_CODE')) {
45 $default_language_code = apply_filters('wpml_default_language', null);
46
47 if ( ICL_LANGUAGE_CODE !== $default_language_code ) {
48 $id = icl_object_id($id, 'elementor_library', false, ICL_LANGUAGE_CODE);
49 }
50 }
51
52 $edit_link = '<span class="wpr-template-edit-btn" data-permalink="'. esc_url(get_permalink($id)) .'">Edit Template</span>';
53
54 $type = get_post_meta(get_the_ID(), '_wpr_template_type', true) || get_post_meta($id, '_elementor_template_type', true);
55 $has_css = 'internal' === get_option( 'elementor_css_print_method' ) || '' !== $type;
56
57 return Elementor\Plugin::instance()->frontend->get_builder_content_for_display( $id, $has_css ) . $edit_link;
58 }
59
60 public function extend_shortcode( $section, $section_id, $args ) {
61 if ( $section->get_name() == 'shortcode' && $section_id == 'section_shortcode' ) {
62 $section->add_control(
63 'select_template' ,
64 [
65 'label' => esc_html__( 'Select Template', 'wpr-addons' ),
66 'type' => 'wpr-ajax-select2',
67 'options' => 'ajaxselect2/get_elementor_templates',
68 'label_block' => true,
69 ]
70 );
71 }
72 }
73
74 }