| 1 |
<?php |
| 2 |
/** |
| 3 |
* MarqueeX uninstall — remove plugin-owned options and transients. |
| 4 |
*/ |
| 5 |
|
| 6 |
if (!defined('WP_UNINSTALL_PLUGIN')) { |
| 7 |
exit; |
| 8 |
} |
| 9 |
|
| 10 |
delete_option('marqueex_settings'); |
| 11 |
|
| 12 |
delete_transient('marqueex_builder_cache'); |
| 13 |
delete_transient('_marqueex_welcome_screen_activation_redirect'); |
| 14 |
|
| 15 |
global $wpdb; |
| 16 |
if (isset($wpdb)) { |
| 17 |
$marqueex_value_like = $wpdb->esc_like('_transient_marqueex_registerable_blocks_') . '%'; |
| 18 |
$marqueex_timeout_like = $wpdb->esc_like('_transient_timeout_marqueex_registerable_blocks_') . '%'; |
| 19 |
// Direct, prepared bulk delete of our own versioned transients on uninstall — |
| 20 |
// there is no core API for a wildcard transient purge, and object caching is |
| 21 |
// irrelevant during uninstall. |
| 22 |
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching |
| 23 |
$wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->options} WHERE option_name LIKE %s", $marqueex_value_like)); |
| 24 |
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching |
| 25 |
$wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->options} WHERE option_name LIKE %s", $marqueex_timeout_like)); |
| 26 |
} |
| 27 |
|