$value[2], 'show_in_rest' => true, 'type' => $value[1], ); // Also reachable via WordPress core's generic /wp/v2/settings route, // which the plan-aware write gates elsewhere (REST_Controller, the // plugin's AI feature settings endpoint) don't cover. if ( $ai_answers_enabled_key === $value[0] ) { $args['sanitize_callback'] = array( __CLASS__, 'sanitize_ai_answers_enabled' ); } register_setting( 'options', $value[0], $args ); } } /** * Reject enabling AI Answers on a site whose plan doesn't support it. * * @param mixed $value Raw value being saved. * @return bool */ public static function sanitize_ai_answers_enabled( $value ) { $value = rest_sanitize_boolean( $value ); return $value && ! Search_Blocks::supports_paid_search() ? false : $value; } }