private function move_sidebar_widget( $widget_id, $current_sidebar_id, $new_sidebar_id, $current_index, $new_index ) {

		$all_widgets     = $this->wp_get_sidebars_widgets();
		$needs_placement = true;
		// Existing widget
		if ( $current_sidebar_id && ! is_null( $current_index ) ) {

			$widgets = $all_widgets[ $current_sidebar_id ];
			if ( $current_sidebar_id !== $new_sidebar_id ) {

				unset( $widgets[ $current_index ] );

			} else {

				$part = array_splice( $widgets, $current_index, 1 );
				array_splice( $widgets, $new_index, 0, $part );

				$needs_placement = false;

			}

			$all_widgets[ $current_sidebar_id ] = array_values( $widgets );

		}

		if ( $needs_placement ) {
			$widgets                        = ! empty( $all_widgets[ $new_sidebar_id ] ) ? $all_widgets[ $new_sidebar_id ] : array();
			$before                         = array_slice( $widgets, 0, $new_index, true );
			$after                          = array_slice( $widgets, $new_index, count( $widgets ), true );
			$widgets                        = array_merge( $before, array( $widget_id ), $after );
			$all_widgets[ $new_sidebar_id ] = array_values( $widgets );
		}

		update_option( 'sidebars_widgets', $all_widgets );

	}
private function move_sidebar_widget( $widget_id, $current_sidebar_id, $new_sidebar_id, $current_index, $new_index ) {

		$all_widgets     = $this->wp_get_sidebars_widgets();
		$needs_placement = true;
		// Existing widget
		if ( $current_sidebar_id && ! is_null( $current_index ) ) {

			$widgets = $all_widgets[ $current_sidebar_id ];
			if ( $current_sidebar_id !== $new_sidebar_id ) {

				unset( $widgets[ $current_index ] );

			} else {

				$part = array_splice( $widgets, $current_index, 1 );
				array_splice( $widgets, $new_index, 0, $part );

				$needs_placement = false;

			}

			$all_widgets[ $current_sidebar_id ] = array_values( $widgets );

		}

		if ( $needs_placement ) {
			$widgets                        = ! empty( $all_widgets[ $new_sidebar_id ] ) ? $all_widgets[ $new_sidebar_id ] : array();
			$before                         = array_slice( $widgets, 0, $new_index, true );
			$after                          = array_slice( $widgets, $new_index, count( $widgets ), true );
			$widgets                        = array_merge( $before, array( $widget_id ), $after );
			$all_widgets[ $new_sidebar_id ] = array_values( $widgets );
		}

		update_option( 'sidebars_widgets', $all_widgets );

	}
private function move_sidebar_widget ( $ widget_id , $ current_sidebar_id , $ new_sidebar_id , $ current_index , $ new_index ) { $ all_widgets = $ this -> wp_get_sidebars_widgets ( ) ; $ needs_placement = true ; // Existing widget if ( $ current_sidebar_id && ! is_null ( $ current_index ) ) { $ widgets = $ all_widgets [ $ current_sidebar_id ] ; if ( $ current_sidebar_id !== $ new_sidebar_id ) { unset ( $ widgets [ $ current_index ] ) ; } else { $ part = array_splice ( $ widgets , $ current_index , 1 ) ; array_splice ( $ widgets , $ new_index , 0 , $ part ) ; $ needs_placement = false ; } $ all_widgets [ $ current_sidebar_id ] = array_values ( $ widgets ) ; } if ( $ needs_placement ) { $ widgets = ! empty ( $ all_widgets [ $ new_sidebar_id ] ) ? $ all_widgets [ $ new_sidebar_id ] : array ( ) ; $ before = array_slice ( $ widgets , 0 , $ new_index , true ) ; $ after = array_slice ( $ widgets , $ new_index , count ( $ widgets ) , true ) ; $ widgets = array_merge ( $ before , array ( $ widget_id ) , $ after ) ; $ all_widgets [ $ new_sidebar_id ] = array_values ( $ widgets ) ; } update_option ( 'sidebars_widgets' , $ all_widgets ) ; }
Repositions a widget within a sidebar or move to another sidebar.

@param string $widget_id
@param string|null $current_sidebar_id
@param string $new_sidebar_id
@param int|null $current_index
@param int $new_index
Repositions a widget within a sidebar or move to another sidebar .