PluginProbe
Insert Html Snippet / trunk
Insert Html Snippet vtrunk
1.4.6 trunk 1.0 1.0.1 1.1 1.1.1 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.4 1.4.1 1.4.2 1.4.3 All 27 releases
← All changes | shortcode-handler.php +137 -142 1.3.4trunk View file →
@@ -1,142 +1,137 @@
1 -<?php
2 -if ( ! defined( 'ABSPATH' ) )
3 - exit;
4 -global $wpdb;
5 -add_shortcode('xyz-ips','xyz_ips_display_content');
6 -function xyz_ips_display_content($xyz_snippet_name){
7 - global $wpdb;
8 - if(is_array($xyz_snippet_name)&& isset($xyz_snippet_name['snippet'])){
9 - $snippet_name = $xyz_snippet_name['snippet'];
10 - $query = $wpdb->get_results($wpdb->prepare( "SELECT * FROM ".$wpdb->prefix."xyz_ips_short_code WHERE title=%s" ,$snippet_name));
11 - if(!empty($query))//if(count($query)>0)
12 - {
13 - foreach ($query as $sippetdetails){
14 - if($sippetdetails->status==1){
15 - /* if(is_numeric(ini_get('output_buffering'))){
16 - $tmp=ob_get_contents();
17 - if(strlen($tmp)>0)
18 - ob_clean();*/
19 - ob_start();
20 - $content_to_eval=$sippetdetails->content;
21 -
22 -/***** to handle old codes : start *****/
23 -
24 -if(get_option('xyz_ips_auto_insert')==1){
25 - $xyz_ips_content_start='<?php';
26 - $new_line="\r\n";
27 - $xyz_ips_content_end='?>';
28 -
29 - if (stripos($content_to_eval, '<?php') !== false)
30 - $tag_start_position=stripos($content_to_eval,'<?php');
31 - else
32 - $tag_start_position="-1";
33 -
34 - if (stripos($content_to_eval, '?>') !== false)
35 - $tag_end_position=stripos($content_to_eval,'?>');
36 - else
37 - $tag_end_position="-1";
38 -
39 - if(stripos($content_to_eval, '<?php') === false && stripos($content_to_eval, '?>') === false)
40 - {
41 - $content_to_eval=$xyz_ips_content_start.$new_line.$content_to_eval;
42 - }
43 - else if(stripos($content_to_eval, '<?php') !== false)
44 - {
45 - if($tag_start_position>=0 && $tag_end_position>=0 && $tag_start_position>$tag_end_position)
46 - {
47 - $content_to_eval=$xyz_ips_content_start.$new_line.$content_to_eval;
48 - }
49 - }
50 - else if(stripos($content_to_eval, '<?php') === false)
51 - {
52 - if (stripos($content_to_eval, '?>') !== false)
53 - {
54 - $content_to_eval=$xyz_ips_content_start.$new_line.$content_to_eval;
55 - }
56 - }
57 - $content_to_eval='?>'.$content_to_eval;
58 -}
59 -
60 -/***** to handle old codes : end *****/
61 -else{
62 - if(substr(trim($content_to_eval), 0,5)=='<?php')
63 - $content_to_eval='?>'.$content_to_eval;
64 -}
65 -
66 -
67 -$exception_occur=0;
68 -$exception_msg="";
69 -
70 -if(get_option('xyz_ips_auto_exception')==1) {
71 -
72 - $str1 = " \r\ntry{";
73 - $var="$";
74 - $str2 = "\r\n}catch(Exception ".$var."e) {echo 'Caught exception: '.".$var."e->getMessage();".$var."exception_occur=1;".$var."exception_msg=".$var."e->getMessage();}";
75 -
76 - $first_start_tag=strpos($content_to_eval,"<?php");
77 - $last_end_tag=strrpos($content_to_eval,"?>");
78 - $last_start_tag=strrpos($content_to_eval,"<?php");
79 -
80 - if($first_start_tag>=0) {
81 - $new_pos=$first_start_tag+5; //add length of php start tag
82 - $content_to_eval=substr_replace( $content_to_eval, $str1, $new_pos, 0 );
83 - }
84 - if($last_end_tag<$last_start_tag) {
85 - $content_to_eval=$content_to_eval.$str2;
86 - }
87 - else {
88 - if($last_end_tag>0) {
89 - $new_pos=$last_end_tag+7; //add length of $str1
90 - $content_to_eval=substr_replace( $content_to_eval, $str2, $new_pos, 0 );
91 - }
92 - else if($last_end_tag==0) {
93 - $content_to_eval=$content_to_eval.$str2;
94 - }
95 - }
96 - //echo $content_to_eval;die;
97 -}
98 -
99 -
100 - eval($content_to_eval);
101 -
102 - if($exception_occur==1) {
103 -
104 - global $post;
105 - $post_slug = $post->post_name;
106 -
107 - if($post_slug!="xyz-ics-preview-page") {
108 -
109 - if(get_option('xyz_ips_exception_email')!="0" && get_option('xyz_ips_exception_email')!="") {
110 -
111 - $email=get_option('xyz_ips_exception_email');
112 - $headers= "Content-type: text/html";
113 - $subject="Exception Report";
114 - $message="Hi,<br>An exception occured while running one of the snippet.The snippet name is ".$snippet_name;
115 - $message.=".<br>Exception details are given below<br>";
116 - $message.=$exception_msg;
117 - wp_mail($email, $subject, $message,$headers);
118 - }
119 - }
120 - }
121 -
122 - $xyz_em_content = ob_get_contents();
123 - // ob_clean();
124 - ob_end_clean();
125 - return $xyz_em_content;
126 - /* }
127 - else{
128 - eval($sippetdetails->content);
129 - }*/
130 - }
131 - else{
132 - return '';
133 - }
134 - break;
135 - }
136 - }
137 - else{
138 - return '';
139 - }
140 - }
141 -}
142 -add_filter('widget_text', 'do_shortcode'); // to run shortcodes in text widgets
1 +<?php
2 +if ( ! defined( 'ABSPATH' ) )
3 + exit;
4 +
5 +global $wpdb;
6 +
7 +include_once 'admin/constants.php';
8 +add_shortcode('xyz-ihs','xyz_ihs_display_content');
9 +$table_name = $wpdb->prefix . 'xyz_ihs_short_code';
10 +$snippets = $wpdb->get_results("SELECT * FROM $table_name WHERE insertionMethod = 1 AND status = 1");
11 +
12 +
13 +foreach ($snippets as $snippet) {
14 +
15 + switch ($snippet->insertionLocation) {
16 +
17 +
18 + case XYZ_IHS_INSERTION_LOCATION['ADMIN_RUN_ON_HEADER']:
19 + if (is_admin()) {
20 + add_action('admin_head', function() use ($snippet) {
21 + echo xyz_execute_ihs_snippet($snippet);
22 + }, 10);
23 + }
24 +
25 + break;
26 + case XYZ_IHS_INSERTION_LOCATION['ADMIN_RUN_ON_FOOTER']:
27 + if (is_admin()) {
28 +
29 +
30 + add_action('admin_footer', function() use ($snippet) {
31 + echo xyz_execute_ihs_snippet($snippet);
32 + }, 10);
33 + }
34 +
35 + break;
36 +
37 +
38 +
39 + case XYZ_IHS_INSERTION_LOCATION['FRONTEND_RUN_ON_HEADER']:
40 + if (!is_admin()) {
41 + add_action('wp_head', function() use ($snippet) {
42 + echo xyz_execute_ihs_snippet($snippet);
43 + }, 10);
44 + }
45 +
46 + break;
47 +
48 + case XYZ_IHS_INSERTION_LOCATION['FRONTEND_RUN_ON_FOOTER']:
49 + if (!is_admin()) {
50 +
51 +
52 + add_action('wp_footer', function() use ($snippet) {
53 +
54 + echo xyz_execute_ihs_snippet($snippet);
55 +
56 + }, 10);
57 + }
58 +
59 + break;
60 +
61 +
62 +
63 +
64 +
65 +
66 + }
67 +}
68 +
69 +function xyz_execute_ihs_snippet($sippetdetails)
70 +{
71 +
72 +if($sippetdetails->status==1){
73 + $xyz_ihs_content=$sippetdetails->content;
74 + if (!empty($xyz_ihs_content)) {
75 + return $xyz_ihs_content;
76 + } else {
77 + return '';
78 + }
79 +
80 + }
81 + else{
82 + return '';
83 + }
84 +
85 +
86 +}
87 +/* customization ends */
88 +
89 +function xyz_ihs_display_content($xyz_snippet_name){
90 + global $wpdb;
91 + $xyz_ihs_exec_in_editor = get_option('xyz_ihs_exec_in_editor');
92 + if ( $xyz_ihs_exec_in_editor ) {
93 + // Page Builder checks (Elementor, WPBakery, Divi, Beaver Builder)
94 + if ( wp_doing_ajax() ) {
95 + $builder_actions = ['elementor_preview', 'wpb_pb_preview', 'et_pb_preview'];
96 + // Check for Elementor, WPBakery, Divi actions
97 + if ( isset( $_REQUEST['action'] ) && in_array( $_REQUEST['action'], $builder_actions, true ) ) {
98 + // Allow shortcode execution in page builder previews
99 + }
100 + // Beaver Builder detection using URL parameters
101 + if ( isset( $_REQUEST['fl_builder'] ) && isset( $_REQUEST['fl_builder'] ) ) {
102 + // Allow execution for Beaver Builder preview
103 + }
104 + }
105 + // Classic Editor or Gutenberg Editor check (editing posts)
106 + if ( is_admin() && isset( $_GET['post'] ) && 'edit' === $_GET['action'] ) {
107 + // Allow shortcode execution in Classic Editor or Gutenberg (when editing posts)
108 + }
109 + } elseif ( is_admin() || ( defined( 'REST_REQUEST' ) && REST_REQUEST ) ) {
110 + return ''; // Do not execute shortcode in other admin areas or REST API requests
111 + }
112 + if(is_array($xyz_snippet_name)&& isset($xyz_snippet_name['snippet'])){
113 +
114 + $snippet_name = $xyz_snippet_name['snippet'];
115 +
116 + $query = $wpdb->get_results($wpdb->prepare( "SELECT * FROM ".$wpdb->prefix."xyz_ihs_short_code WHERE title=%s" ,$snippet_name));
117 +
118 + if(!empty($query))//if(count($query)>0)
119 + {
120 + foreach ($query as $sippetdetails){
121 + if($sippetdetails->status==1)
122 + return do_shortcode($sippetdetails->content) ;
123 + else
124 + return '';
125 + break;
126 + }
127 +
128 + }else{
129 +
130 + return '';
131 + }
132 +
133 + }
134 +}
135 +
136 +
137 +add_filter('widget_text', 'do_shortcode'); // to run shortcodes in text widgets