X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/53f4633144ed68c8b8fb5861f992b5489894a940..3d39054f012aefe514b3f5509e32f09fc4feda44:/wp-admin/widgets.php diff --git a/wp-admin/widgets.php b/wp-admin/widgets.php index 679f1032..a9876b89 100644 --- a/wp-admin/widgets.php +++ b/wp-admin/widgets.php @@ -1,6 +1,6 @@ ' . __( 'Cheatin’ uh?' ) . '' . + '

' . __( 'Sorry, you are not allowed to edit theme options on this site.' ) . '

', + 403 + ); +} $widgets_access = get_user_setting( 'widgets_access' ); if ( isset($_GET['widgets-access']) ) { @@ -21,15 +26,6 @@ if ( isset($_GET['widgets-access']) ) { set_user_setting( 'widgets_access', $widgets_access ); } -/** - * - * @param string $classes - * @return string - */ -function wp_widgets_access_body_class($classes) { - return "$classes widgets_access "; -} - if ( 'on' == $widgets_access ) { add_filter( 'admin_body_class', 'wp_widgets_access_body_class' ); } else { @@ -93,7 +89,7 @@ foreach ( $sidebars_widgets as $sidebar_id => $widgets ) { if ( 'wp_inactive_widgets' == $sidebar_id ) continue; - if ( !isset( $wp_registered_sidebars[ $sidebar_id ] ) ) { + if ( ! is_registered_sidebar( $sidebar_id ) ) { if ( ! empty( $widgets ) ) { // register the inactive_widgets area as sidebar register_sidebar(array( 'name' => __( 'Inactive Sidebar (not used)' ), @@ -156,6 +152,17 @@ if ( isset($_POST['savewidget']) || isset($_POST['removewidget']) ) { $sidebar = array_diff( $sidebar, array($widget_id) ); $_POST = array('sidebar' => $sidebar_id, 'widget-' . $id_base => array(), 'the-widget-id' => $widget_id, 'delete_widget' => '1'); + + /** + * Fires immediately after a widget has been marked for deletion. + * + * @since 4.4.0 + * + * @param string $widget_id ID of the widget marked for deletion. + * @param string $sidebar_id ID of the sidebar the widget was deleted from. + * @param string $id_base ID base for the widget. + */ + do_action( 'delete_widget', $widget_id, $sidebar_id, $id_base ); } $_POST['widget-id'] = $sidebar; @@ -187,6 +194,28 @@ if ( isset($_POST['savewidget']) || isset($_POST['removewidget']) ) { exit; } +// Remove inactive widgets without js +if ( isset( $_POST['removeinactivewidgets'] ) ) { + check_admin_referer( 'remove-inactive-widgets', '_wpnonce_remove_inactive_widgets' ); + + if ( $_POST['removeinactivewidgets'] ) { + foreach ( $sidebars_widgets['wp_inactive_widgets'] as $key => $widget_id ) { + $pieces = explode( '-', $widget_id ); + $multi_number = array_pop( $pieces ); + $id_base = implode( '-', $pieces ); + $widget = get_option( 'widget_' . $id_base ); + unset( $widget[$multi_number] ); + update_option( 'widget_' . $id_base, $widget ); + unset( $sidebars_widgets['wp_inactive_widgets'][$key] ); + } + + wp_set_sidebars_widgets( $sidebars_widgets ); + } + + wp_redirect( admin_url( 'widgets.php?message=0' ) ); + exit; +} + // Output the widget form without js if ( isset($_GET['editwidget']) && $_GET['editwidget'] ) { $widget_id = $_GET['editwidget']; @@ -237,7 +266,7 @@ if ( isset($_GET['editwidget']) && $_GET['editwidget'] ) {

> -

+

@@ -328,7 +357,7 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' ); ?> ), admin_url( 'customize.php' ) ) ), - __( 'Manage in Customizer' ) + __( 'Manage with Live Preview' ) ); } ?> @@ -354,7 +383,7 @@ do_action( 'widgets_admin_page' ); ?>