| @@ -7,10 +7,15 @@ | ||
| 7 | 7 | namespace Extendify\AutoLaunch\Controllers; |
| 8 | 8 | |
| 9 | 9 | defined('ABSPATH') || die('No direct access.'); |
| 10 | 10 | |
| 11 | +use Extendify\Agent\Controllers\ChatHistoryController; | |
| 12 | +use Extendify\PartnerData; | |
| 11 | 13 | use Extendify\Shared\DataProvider\ResourceData; |
| 14 | +use Extendify\Shared\Services\AutoUpdate\AutoUpdate; | |
| 15 | +use Extendify\Shared\Services\LaunchUpdate\LaunchUpdater; | |
| 12 | 16 | use Extendify\Shared\Services\Sanitizer; |
| 17 | +use Extendify\SiteVisibility; | |
| 13 | 18 | |
| 14 | 19 | /** |
| 15 | 20 | * The controller for interacting with WordPress. |
| 16 | 21 | */ |
| @@ -154,10 +159,57 @@ | ||
| 154 | 159 | \update_option('extendify_check_for_image_imports', true, false); |
| 155 | 160 | \delete_transient('extendify_import_images_check_delay'); |
| 156 | 161 | |
| 157 | 162 | \update_option('extendify_onboarding_completed', gmdate('Y-m-d\TH:i:s\Z')); |
| 163 | + // Anything already in the chat reads as an onboarding offer the user answered. | |
| 164 | + ChatHistoryController::clear(); | |
| 165 | + LaunchUpdater::clearAttempts(); | |
| 158 | 166 | |
| 167 | + if (PartnerData::setting('useComingSoon')) { | |
| 168 | + SiteVisibility::markUnpublished(); | |
| 169 | + } | |
| 170 | + | |
| 159 | 171 | \do_action('extendify_after_launch'); |
| 160 | 172 | |
| 161 | 173 | return new \WP_REST_Response('ok'); |
| 174 | + } | |
| 175 | + | |
| 176 | + /** | |
| 177 | + * Apply pending theme / PUC-plugin upgrades before Launch runs (see | |
| 178 | + * LaunchUpdater::run, which never throws). | |
| 179 | + * | |
| 180 | + * @return \WP_REST_Response | |
| 181 | + */ | |
| 182 | + public static function runUpdates() | |
| 183 | + { | |
| 184 | + return new \WP_REST_Response(LaunchUpdater::run()); | |
| 185 | + } | |
| 186 | + | |
| 187 | + /** | |
| 188 | + * Runs on every launch page load, so it must not discard site state. | |
| 189 | + * | |
| 190 | + * @return \WP_REST_Response | |
| 191 | + */ | |
| 192 | + public static function preLaunch() | |
| 193 | + { | |
| 194 | + if (AutoUpdate::isEnabled()) { | |
| 195 | + AutoUpdate::enableAutoUpdateForPlugin(EXTENDIFY_PLUGIN_BASENAME); | |
| 196 | + AutoUpdate::addToAutoUpdateList('auto_update_themes', 'extendable'); | |
| 197 | + AutoUpdate::enableAutoUpdateForCore(); | |
| 198 | + } | |
| 199 | + | |
| 200 | + return new \WP_REST_Response(['success' => true]); | |
| 201 | + } | |
| 202 | + | |
| 203 | + /** | |
| 204 | + * Discards the launched state after the user confirms the restart. | |
| 205 | + * | |
| 206 | + * @return \WP_REST_Response | |
| 207 | + */ | |
| 208 | + public static function resetLaunchState() | |
| 209 | + { | |
| 210 | + \delete_option('extendify_onboarding_completed'); | |
| 211 | + ChatHistoryController::clear(); | |
| 212 | + | |
| 213 | + return new \WP_REST_Response(['success' => true]); | |
| 162 | 214 | } |
| 163 | 215 | } |