Ticket #20651: 20651.2.diff

File 20651.2.diff, 1.2 KB (added by SergeyBiryukov, 12 months ago)
Line 
1Index: wp-includes/option.php
2===================================================================
3--- wp-includes/option.php      (revision 20760)
4+++ wp-includes/option.php      (working copy)
5@@ -366,7 +366,10 @@
6        $row = $wpdb->get_row( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name = %s", $option ) );
7        if ( is_null( $row ) )
8                return false;
9+
10+       do_action( "pre_delete_option_$option", $option );
11        do_action( 'delete_option', $option );
12+
13        $result = $wpdb->delete( $wpdb->options, array( 'option_name' => $option ) );
14        if ( ! defined( 'WP_INSTALLING' ) ) {
15                if ( 'yes' == $row->autoload ) {
16@@ -846,14 +849,16 @@
17 
18        // ms_protect_special_option( $option ); @todo
19 
20-       do_action( 'pre_delete_site_option_' . $option );
21-
22        if ( !is_multisite() ) {
23                $result = delete_option( $option );
24        } else {
25                $row = $wpdb->get_row( $wpdb->prepare( "SELECT meta_id FROM {$wpdb->sitemeta} WHERE meta_key = %s AND site_id = %d", $option, $wpdb->siteid ) );
26                if ( is_null( $row ) || !$row->meta_id )
27                        return false;
28+
29+               do_action( "pre_delete_site_option_$option", $option );
30+               do_action( 'pre_delete_site_option', $option );
31+
32                $cache_key = "{$wpdb->siteid}:$option";
33                wp_cache_delete( $cache_key, 'site-options' );
34