-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathuninstall.php
More file actions
83 lines (73 loc) · 2.77 KB
/
Copy pathuninstall.php
File metadata and controls
83 lines (73 loc) · 2.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
/**
* Fired when the plugin is uninstalled.
*
* When populating this file, consider the following flow
* of control:
*
* - This method should be static
* - Check if the $_REQUEST content actually is the plugin name
* - Run an admin referrer check to make sure it goes through authentication
* - Verify the output of $_GET makes sense
* - Repeat with other user roles. Best directly by using the links/query string parameters.
* - Repeat things for multisite. Once for a single site in the network, once sitewide.
*
* This file may be updated more in future version of the Boilerplate; however, this is the
* general skeleton and outline for how the file should work.
*
* For more information, see the following discussion:
* https://github.com/tommcfarlin/WordPress-Plugin-Boilerplate/pull/123#issuecomment-28541913
*
* @link https://arnelio.com
* @since 1.0.0
*
* @package Arnelioconnect
*/
// If uninstall not called from WordPress, then exit.
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
exit;
}
/**
* Elimina todas las opciones, custom post type, taxonomías y metadatos asociados con el plugin.
*/
// 1. Eliminar opciones del plugin (opción principal definida en arnelioconnect.php).
//delete_option( ARNELIOCONNECT_MENU_URL . '_options' );
// 2. (Opcional) Eliminar otras opciones relacionadas utilizando un prefijo en el nombre.
global $wpdb;
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'scfs_arnelioconnect%'" );
// 3. Eliminar todos los posts del custom post type "alimentacion".
$alimentacion_posts = get_posts( array(
'post_type' => 'alimentacion',
'numberposts' => -1,
'post_status' => 'any'
) );
if ( ! empty( $alimentacion_posts ) ) {
foreach ( $alimentacion_posts as $post ) {
wp_delete_post( $post->ID, true ); // Eliminación permanente.
}
}
// 4. Eliminar todos los términos de las taxonomías "alimentacion-cat" y "alimentacion-tag".
$taxonomies = array( 'alimentacion-cat', 'alimentacion-tag' );
foreach ( $taxonomies as $taxonomy ) {
$terms = get_terms( array(
'taxonomy' => $taxonomy,
'hide_empty' => false,
) );
if ( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
foreach ( $terms as $term ) {
wp_delete_term( $term->term_id, $taxonomy );
}
}
}
// 5. Eliminar metadatos asociados a "scfs_". Esto remueve datos en wp_postmeta.
global $wpdb;
$wpdb->query(
"DELETE FROM {$wpdb->postmeta} WHERE meta_key LIKE 'scfs_%'"
);
// 6. Eliminar todos los transients que contengan "scfs_arnelioconnect"
// Los transients se almacenan en la tabla de opciones con la clave '_transient_'.
$wpdb->query(
"DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_%scfs_arnelioconnect%'"
);
// 6. Si el plugin creó tablas personalizadas u otros datos, incorporarlos aquí.
// ...existing custom table deletion code...