// ========================================== // 三階松テイクアウト:送信制限(月曜定休・火曜昼) // ========================================== add_filter('wpcf7_validate_date', 'sgm_cf7_takeout_validation', 10, 2); add_filter('wpcf7_validate_date*', 'sgm_cf7_takeout_validation', 10, 2); add_filter('wpcf7_validate_select', 'sgm_cf7_takeout_validation', 10, 2); add_filter('wpcf7_validate_select*', 'sgm_cf7_takeout_validation', 10, 2); function sgm_cf7_takeout_validation($result, $tag) { $name = $tag->name; // 日付のチェック if ($name == 'pickup_date') { $value = isset($_POST[$name]) ? $_POST[$name] : ''; if ($value) { $day = (int) date('w', strtotime($value)); if ($day === 1) { // 月曜日 $result->invalidate($tag, "月曜日は定休日です。別の日を選択してください。"); } } } // 時間のチェック if ($name == 'pickup_time') { $date_val = isset($_POST['pickup_date']) ? $_POST['pickup_date'] : ''; $time_val = isset($_POST['pickup_time']) ? $_POST['pickup_time'] : ''; if ($date_val && $time_val) { $day = (int) date('w', strtotime($date_val)); $hour = (int) substr($time_val, 0, 2); // 火曜日(2) かつ 17時より前 if ($day === 2 && $hour < 17) { $result->invalidate($tag, "火曜日の昼は受取不可です。17:00以降を選択してください。"); } } } return $result; } // ✉️ 元の注文処理フックを呼び出す(必要に応じて変更可) do_action('sgm_takeout_order_process'); }