PluginProbe ʕ •ᴥ•ʔ
SEO SIMPLE PACK / 2.2.3
SEO SIMPLE PACK v2.2.3
1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 2.0.0 2.1.0 2.1.1 2.2.0 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.0 2.3.1 2.4.0 2.4.1 2.4.2 2.5.0 2.5.1 3.0.0 3.1.0 3.1.1 3.1.2 3.2.0 3.2.1 3.3.0 3.3.1 3.4.0 3.5.0 3.5.1 3.5.2 3.6.0 3.6.1 3.6.2 3.6.3 3.7.0 trunk 1.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2
seo-simple-pack / class / utility.php
seo-simple-pack / class Last commit date
trait 5 years ago __branch.php 5 years ago activate.php 5 years ago data.php 5 years ago hooks.php 5 years ago menu.php 5 years ago metabox.php 5 years ago output.php 5 years ago utility.php 5 years ago
utility.php
95 lines
1 <?php
2 // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
3
4 class SSP_Utility {
5
6 /**
7 * 外部からのインスタンス化を防ぐ
8 */
9 private function __construct() {}
10
11
12 /**
13 * データを無害化して返す
14 */
15 public static function sanitize_post_data( $data ) {
16
17 foreach ( $data as $key => $val ) {
18
19 if ( '' === $val ) {
20 continue;
21 }
22
23 // "1" , "0" => bool
24 $bool_val = filter_var( $val, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE );
25
26 if ( null === $bool_val ) {
27
28 $val = sanitize_text_field( $val );
29 $val = stripslashes( $val );
30 $data[ $key ] = $val;
31
32 } else {
33
34 $data[ $key ] = $bool_val;
35
36 }
37 }
38
39 return $data;
40 }
41
42
43 /**
44 * 設定更新時のDB更新処理
45 *
46 * @param array $P サニタイズ後の $_POST
47 */
48 public static function update_db( $P ) {
49
50 if ( empty( $P ) ) {
51 exit( 'POST data was not found' );
52 }
53
54 // nonceキー存在チェック
55 if ( ! isset( $P[ SSP_Data::NONCE_NAME ] ) ) return;
56
57 // nonceの検証
58 if ( ! wp_verify_nonce( $P[ SSP_Data::NONCE_NAME ], SSP_Data::NONCE_ACTION ) ) return;
59
60 // nonceチェック、こっちでも。
61 // check_admin_referer( SSP_Data::NONCE_ACTION, SSP_Data::NONCE_NAME );
62
63 // Get DB name.
64 $db_name = isset( $P['db_name'] ) ? $P['db_name'] : '';
65
66 // 設定可能なデータのリストを取得
67 if ( SSP_Data::DB_NAME['settings'] === $db_name ) {
68
69 $db_data_key = array_keys( SSP_Data::$settings );
70
71 } elseif ( SSP_Data::DB_NAME['ogp'] === $db_name ) {
72
73 $db_data_key = array_keys( SSP_Data::$ogp );
74
75 } else {
76
77 return;
78 }
79
80 // 保存したいデータだけを抽出 (送信ボタンのデータなど、不要なものを削除)
81 foreach ( $P as $key => $v ) {
82
83 if ( ! in_array( $key, $db_data_key, true ) ) {
84
85 unset( $P[ $key ] );
86
87 }
88 }
89
90 // Update
91 update_option( $db_name, $P );
92 }
93
94 }
95