WordPress.org

Make WordPress Core

Ticket #10750: wporg-post-user-plugin-hooks.diff

File wporg-post-user-plugin-hooks.diff, 4.7 KB (added by ryan, 5 years ago)

First pass, from Demitrious Kelly

  • wp-includes/post.php

     
    532532 
    533533        wp_cache_delete($post_id, 'post_meta'); 
    534534 
     535        do_action( 'added_post_meta', $wpdb->insert_id, $post_id, $meta_key, $meta_value ); 
     536 
    535537        return true; 
    536538} 
    537539 
     
    573575        if ( !$meta_id ) 
    574576                return false; 
    575577 
     578        do_action( 'delete_post_meta', $meta_id, $post_id, $meta_key, $meta_value ); 
     579 
    576580        if ( empty( $meta_value ) ) 
    577581                $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = %s", $post_id, $meta_key ) ); 
    578582        else 
    579583                $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = %s AND meta_value = %s", $post_id, $meta_key, $meta_value ) ); 
    580584 
    581585        wp_cache_delete($post_id, 'post_meta'); 
     586         
     587        do_action( 'deleted_post_meta', $meta_id, $post_id, $meta_key, $meta_value ); 
    582588 
    583589        return true; 
    584590} 
     
    651657        if ( !$meta_key ) 
    652658                return false; 
    653659 
    654         if ( ! $wpdb->get_var( $wpdb->prepare( "SELECT meta_key FROM $wpdb->postmeta WHERE meta_key = %s AND post_id = %d", $meta_key, $post_id ) ) ) { 
     660        $meta_id = $wpdb->get_var( $wpdb->prepare( "SELECT meta_id FROM $wpdb->postmeta WHERE meta_key = %s AND post_id = %d", $meta_key, $post_id ) ); 
     661        if ( ! $meta_id ) 
    655662                return add_post_meta($post_id, $meta_key, $meta_value); 
    656         } 
    657663 
    658664        $meta_value = maybe_serialize( stripslashes_deep($meta_value) ); 
    659665 
     
    665671                $where['meta_value'] = $prev_value; 
    666672        } 
    667673 
     674        do_action( 'update_post_meta', $meta_id, $post_id, $meta_key, $meta_value ); 
     675         
    668676        $wpdb->update( $wpdb->postmeta, $data, $where ); 
    669677        wp_cache_delete($post_id, 'post_meta'); 
     678         
     679        do_action( 'updated_post_meta', $meta_id, $post_id, $meta_key, $meta_value ); 
     680         
    670681        return true; 
    671682} 
    672683 
  • wp-includes/user.php

     
    307307                $meta_value = serialize($meta_value); 
    308308        $meta_value = trim( $meta_value ); 
    309309 
     310        $cur = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->usermeta WHERE user_id = %d AND meta_key = %s", $user_id, $meta_key) ); 
     311 
     312        if ( $cur && $cur->umeta_id ) 
     313                do_action( 'delete_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value ); 
     314 
    310315        if ( ! empty($meta_value) ) 
    311316                $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->usermeta WHERE user_id = %d AND meta_key = %s AND meta_value = %s", $user_id, $meta_key, $meta_value) ); 
    312317        else 
     
    314319 
    315320        wp_cache_delete($user_id, 'users'); 
    316321 
     322        if ( $cur && $cur->umeta_id ) 
     323                do_action( 'deleted_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value ); 
     324 
    317325        return true; 
    318326} 
    319327 
     
    399407        } 
    400408 
    401409        $cur = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->usermeta WHERE user_id = %d AND meta_key = %s", $user_id, $meta_key) ); 
     410 
     411        if ( $cur ) 
     412                do_action( 'update_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value ); 
     413 
    402414        if ( !$cur ) 
    403415                $wpdb->insert($wpdb->usermeta, compact('user_id', 'meta_key', 'meta_value') ); 
    404416        else if ( $cur->meta_value != $meta_value ) 
     
    408420 
    409421        wp_cache_delete($user_id, 'users'); 
    410422 
     423        if ( !$cur )  
     424                do_action( 'added_usermeta', $wpdb->insert_id, $user_id, $meta_key, $meta_value ); 
     425        else 
     426                do_action( 'updated_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value ); 
     427 
    411428        return true; 
    412429} 
    413430 
  • wp-admin/includes/plugin.php

     
    314314                @include(WP_PLUGIN_DIR . '/' . $plugin); 
    315315                $current[] = $plugin; 
    316316                sort($current); 
     317                do_action( 'activate_plugin', trim( $plugin) ); 
    317318                update_option('active_plugins', $current); 
    318                 do_action('activate_' . $plugin); 
     319                do_action( 'activate_' . trim( $plugin ) ); 
     320                do_action( 'activated_plugin', trim( $plugin) ); 
    319321                ob_end_clean(); 
    320322        } 
    321323 
     
    343345                $plugin = plugin_basename($plugin); 
    344346                if( ! is_plugin_active($plugin) ) 
    345347                        continue; 
     348                if ( ! $silent ) 
     349                        do_action( 'deactivate_plugin', trim( $plugin ) ); 
    346350                array_splice($current, array_search( $plugin, $current), 1 ); // Fixed Array-fu! 
    347                 if ( ! $silent ) //Used by Plugin updater to internally deactivate plugin, however, not to notify plugins of the fact to prevent plugin output. 
    348                         do_action('deactivate_' . trim( $plugin )); 
     351                //Used by Plugin updater to internally deactivate plugin, however, not to notify plugins of the fact to prevent plugin output. 
     352                if ( ! $silent ) { 
     353                        do_action( 'deactivate_' . trim( $plugin ) ); 
     354                        do_action( 'deactivated_plugin', trim( $plugin ) ); 
     355                } 
    349356        } 
    350357 
    351358        update_option('active_plugins', $current);