Paramètre

$option

(string) (Requis) Nom de l'option à supprimer. Aucuns échappements SQL ne sont attendus.

Retourne

(bool) True si l'option a été supprimé, false sinon.

Structure de la fonction delete_option()

Définie dans le fichier wp-includes/option.php à la ligne 640 :

function delete_option( $option ) {
    global $wpdb;

    $option = trim( $option );
    if ( empty( $option ) ) {
        return false;
    }

    wp_protect_special_option( $option );

    // Get the ID, if no ID then return.
    $row = $wpdb->get_row( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name = %s", $option ) );
    if ( is_null( $row ) ) {
        return false;
    }

    /**
     * Fires immediately before an option is deleted.
     *
     * @since 2.9.0
     *
     * @param string $option Name of the option to delete.
     */
    do_action( 'delete_option', $option );

    $result = $wpdb->delete( $wpdb->options, array( 'option_name' => $option ) );

    if ( ! wp_installing() ) {
        if ( 'yes' === $row->autoload ) {
            $alloptions = wp_load_alloptions( true );
            if ( is_array( $alloptions ) && isset( $alloptions[ $option ] ) ) {
                unset( $alloptions[ $option ] );
                wp_cache_set( 'alloptions', $alloptions, 'options' );
            }
        } else {
            wp_cache_delete( $option, 'options' );
        }
    }

    if ( $result ) {

        /**
         * Fires after a specific option has been deleted.
         *
         * The dynamic portion of the hook name, `$option`, refers to the option name.
         *
         * @since 3.0.0
         *
         * @param string $option Name of the deleted option.
         */
        do_action( "delete_option_{$option}", $option );

        /**
         * Fires after an option has been deleted.
         *
         * @since 2.9.0
         *
         * @param string $option Name of the deleted option.
         */
        do_action( 'deleted_option', $option );

        return true;
    }

    return false;
}

Fonctions et Hooks utilisés par delete_option()

wp_installing()

Vérifie ou met Wordpress en mode installation.

wp_cache_set()

Sauvegarde les données dans le cache.

wp_cache_delete()

Supprime les contenus du cache correspondant à la clé et au groupe.

do_action()

Exécute des fonctions attachées à un hook spécifique.

wp_load_alloptions()

Charge et met en cache toutes les options auto-chargées si disponible ou toutes les options.

delete_option

Se lance juste avant qu'une option soit supprimée.

delete_option_{$option}

Se lance juste après qu'une option spécifique ait été supprimé.

deleted_option

Se lance juste après qu'une option ait été supprimé.

wp_protect_special_option()

Empêche la suppression des options protégées de WordPress.

Où trouver la fonction delete_option() dans le CMS Wordpress

Exemple

Si on veut supprimer les options d'un plugin au moment de sa désactivation :
$settingOptions = array( 'plugin_status', 'export_status', 'notifications', 'label_settings' ); // etc
 
foreach ( $settingOptions as $settingName ) {
    delete_option( $settingName );
}

Sources

Codex Wordpress : delete_option()

Autres fonctions dans le même fichier : wp-includes/option.php

Retour