/** * @group update_tracking_number */ public function test_update_tracking_number_引数が文字のときは無視() { $this->Setting->update_tracking_number('dummy'); $this->assertEquals(1, $this->Setting->get_tracking_number()); }
/** * save_post * @param int $post_id */ public function save_post($post_id) { if (!(isset($_POST['post_type']) && $_POST['post_type'] === MWF_Config::NAME)) { return $post_id; } if (!isset($_POST[MWF_Config::NAME . '_nonce'])) { return $post_id; } if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return $post_id; } if (!wp_verify_nonce($_POST[MWF_Config::NAME . '_nonce'], MWF_Config::NAME)) { return $post_id; } if (!current_user_can(MWF_Config::CAPABILITY)) { return $post_id; } $data = $_POST[MWF_Config::NAME]; $triminglists = array('mail_from', 'mail_to', 'mail_cc', 'mail_bcc', 'admin_mail_from'); foreach ($triminglists as $name) { $data[$name] = trim(mb_convert_kana($data[$name], 's', get_option('blog_charset'))); } if (!empty($data['validation']) && is_array($data['validation'])) { $validation = array(); foreach ($data['validation'] as $_validation) { if (empty($_validation['target'])) { continue; } foreach ($_validation as $key => $value) { // between min, max if ($key == 'between') { if (!MWF_Functions::is_numeric($value['min'])) { unset($_validation[$key]['min']); } if (!MWF_Functions::is_numeric($value['max'])) { unset($_validation[$key]['max']); } } elseif ($key == 'minlength' && !MWF_Functions::is_numeric($value['min'])) { unset($_validation[$key]); } elseif ($key == 'fileType' && isset($value['types']) && !preg_match('/^[0-9A-Za-z,]+$/', $value['types'])) { unset($_validation[$key]); } elseif ($key == 'fileSize' && !MWF_Functions::is_numeric($value['bytes'])) { unset($_validation[$key]); } // 要素が空のときは削除 // 単一項目のとき if (empty($value)) { unset($_validation[$key]); } elseif (is_array($value) && !array_diff($value, array(''))) { unset($_validation[$key]); } } $validation[] = $_validation; } $data['validation'] = $validation; } // チェックボックスの項目は、未設定のときはデータが来ないのでここで処理する if (empty($data['querystring'])) { $data['querystring'] = false; } if (empty($data['usedb'])) { $data['usedb'] = false; } if (empty($data['scroll'])) { $data['scroll'] = false; } $Setting = new MW_WP_Form_Setting($post_id); $Setting->sets($data); if (isset($_POST[MWF_Config::TRACKINGNUMBER])) { $tracking_number = $_POST[MWF_Config::TRACKINGNUMBER]; $Setting->update_tracking_number($tracking_number); } $Setting->save(); }
/** * 問い合わせ番号を更新 */ public function update_tracking_number() { if (preg_match('{' . MWF_Config::TRACKINGNUMBER . '}', $this->Mail_admin_raw->body)) { $this->Setting->update_tracking_number(); } }