PluginProbe ʕ •ᴥ•ʔ
Rich Showcase for Google Reviews / 6.9.10
Rich Showcase for Google Reviews v6.9.10
6.9.10 6.9.9 6.9.8 6.9.7 6.9.6 trunk 1.4 1.42 1.43 1.44 1.45 1.46 1.47 1.48 1.49 1.5 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.7 1.6.8 1.6.9 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 2.3 2.4 2.4.1 2.4.2 2.5 2.5.1 2.6 2.6.1 2.6.2 2.7 2.8 2.9 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.6.1 3.7 3.8 3.9 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.8.1 4.8.2 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.7.1 5.8 5.9 5.9.1 5.9.2 5.9.3 5.9.7 6.0 6.1 6.2 6.3 6.4 6.4.1 6.5 6.6 6.6.1 6.6.2 6.7 6.8 6.8.1 6.8.2 6.9 6.9.1 6.9.2 6.9.3 6.9.4 6.9.4.1 6.9.4.2 6.9.4.3 6.9.4.4 6.9.5
widget-google-reviews / includes / class-feed-serializer.php
widget-google-reviews / includes Last commit date
admin 2 weeks ago core 5 days ago class-activator.php 2 weeks ago class-assets.php 2 months ago class-builder-page.php 5 months ago class-deactivator.php 3 years ago class-debug-info.php 6 months ago class-feed-ajax.php 1 year ago class-feed-block.php 2 weeks ago class-feed-deserializer.php 11 months ago class-feed-old.php 4 years ago class-feed-page.php 11 months ago class-feed-serializer.php 9 months ago class-feed-shortcode.php 2 years ago class-feed-widget.php 8 months ago class-plugin-overview-ajax.php 1 year ago class-plugin-overview.php 5 months ago class-plugin-settings.php 2 days ago class-plugin-support.php 1 year ago class-plugin.php 2 months ago class-post-types.php 3 years ago class-reviews-cron.php 1 year ago class-settings-save.php 2 months ago class-view.php 2 days ago index.php 4 years ago page-setting-advance.php 2 weeks ago page-setting-fig.php 1 year ago page-setting-support.php 4 years ago
class-feed-serializer.php
79 lines
1 <?php
2
3 namespace WP_Rplg_Google_Reviews\Includes;
4
5 class Feed_Serializer {
6
7 public function __construct() {
8 add_action('admin_post_' . Post_Types::FEED_POST_TYPE . '_save', array($this, 'feed_save'), 30);
9 }
10
11 public function feed_save() {
12
13 $raw_data_array = $_POST[Post_Types::FEED_POST_TYPE];
14
15 $post_id = $this->save($raw_data_array['post_id'], $raw_data_array['title'], $raw_data_array['content']);
16
17 // NOT: $referer = empty(wp_get_referer()) ? $raw_data_array['current_url'] : wp_get_referer();
18 // COZ: Fatal error: Can't use function return value in write context in .../includes/class-feed-serializer.php on line ...
19 $referer = wp_get_referer();
20 $referer = empty($referer) ? sanitize_text_field(wp_unslash($raw_data_array['current_url'])) : wp_get_referer();
21
22 wp_safe_redirect(
23 add_query_arg(array(
24 Post_Types::FEED_POST_TYPE . '_id' => $post_id,
25 ), $referer)
26 );
27 exit;
28 }
29
30 public function save($post_id, $title, $content) {
31
32 if (!current_user_can('manage_options')) {
33 die('The account you\'re logged in to doesn\'t have permission to access this page.');
34 }
35
36 check_admin_referer('grw_wpnonce', 'grw_nonce');
37
38 $post_id = wp_insert_post(array(
39 'ID' => sanitize_text_field(wp_unslash($post_id)),
40 'post_title' => sanitize_text_field(wp_unslash($title)),
41 'post_content' => $this->sanitize_json(wp_unslash($content)),
42 'post_type' => Post_Types::FEED_POST_TYPE,
43 'post_status' => 'publish',
44 ));
45 return $post_id;
46 }
47
48 function sanitize_json($json) {
49 $arr = json_decode($json, true, 512, JSON_INVALID_UTF8_SUBSTITUTE);
50 if (json_last_error() !== JSON_ERROR_NONE) {
51 // TODO: log
52 return false;
53 }
54
55 $this->sanitize_json_recurs($arr);
56 return wp_json_encode($arr, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
57 }
58
59 function sanitize_json_recurs(&$input) {
60 if (!is_array($input)) return;
61
62 foreach ($input as $key => &$value) {
63 if (is_array($value)) {
64 $this->sanitize_json_recurs($value);
65 continue;
66 }
67
68 if (is_string($key) && is_string($value)) {
69 if (stripos($key, 'url') !== false) {
70 $value = esc_url_raw($value);
71 } else {
72 $value = sanitize_textarea_field($value);
73 }
74 }
75 }
76 unset($value);
77 }
78 }
79