bulk_footer example

do_action(
            'upgrader_process_complete',
            $this,
            array(
                'action'  => 'update',
                'type'    => 'plugin',
                'bulk'    => true,
                'plugins' => $plugins,
            )
        );

        $this->skin->bulk_footer();

        $this->skin->footer();

        // Cleanup our hooks, in case something else does an upgrade on this connection.         remove_filter( 'upgrader_clear_destination', array( $this, 'delete_old_plugin' ) );

        /* * Ensure any future auto-update failures trigger a failure email by removing * the last failure notification from the list when plugins update successfully. */
        $past_failure_emails = get_option( 'auto_plugin_theme_update_emails', array() );

        
$this->init();
        $this->upgrade_strings();

        if ( ! $language_updates ) {
            $language_updates = wp_get_translation_updates();
        }

        if ( empty( $language_updates ) ) {
            $this->skin->header();
            $this->skin->set_result( true );
            $this->skin->feedback( 'up_to_date' );
            $this->skin->bulk_footer();
            $this->skin->footer();
            return true;
        }

        if ( 'upgrader_process_complete' === current_filter() ) {
            $this->skin->feedback( 'starting_upgrade' );
        }

        // Remove any existing upgrade filters from the plugin/theme upgraders #WP29425 & #WP29230.         remove_all_filters( 'upgrader_pre_install' );
        remove_all_filters( 'upgrader_clear_destination' );
        
do_action(
            'upgrader_process_complete',
            $this,
            array(
                'action' => 'update',
                'type'   => 'theme',
                'bulk'   => true,
                'themes' => $themes,
            )
        );

        $this->skin->bulk_footer();

        $this->skin->footer();

        // Cleanup our hooks, in case something else does an upgrade on this connection.         remove_filter( 'upgrader_pre_install', array( $this, 'current_before' ) );
        remove_filter( 'upgrader_post_install', array( $this, 'current_after' ) );
        remove_filter( 'upgrader_clear_destination', array( $this, 'delete_old_theme' ) );

        /* * Ensure any future auto-update failures trigger a failure email by removing * the last failure notification from the list when themes update successfully. */
/** * @param string $title */
    public function after( $title = '' ) {
        parent::after( $this->theme_info->display( 'Name' ) );
        $this->decrement_update_count( 'theme' );
    }

    /** */
    public function bulk_footer() {
        parent::bulk_footer();

        $update_actions = array(
            'themes_page'  => sprintf(
                '<a href="%s" target="_parent">%s</a>',
                self_admin_url( 'themes.php' ),
                __( 'Go to Themes page' )
            ),
            'updates_page' => sprintf(
                '<a href="%s" target="_parent">%s</a>',
                self_admin_url( 'update-core.php' ),
                __( 'Go to WordPress Updates page' )
            ),
/** * @param string $title */
    public function after( $title = '' ) {
        parent::after( $this->plugin_info['Title'] );
        $this->decrement_update_count( 'plugin' );
    }

    /** */
    public function bulk_footer() {
        parent::bulk_footer();

        $update_actions = array(
            'plugins_page' => sprintf(
                '<a href="%s" target="_parent">%s</a>',
                self_admin_url( 'plugins.php' ),
                __( 'Go to Plugins page' )
            ),
            'updates_page' => sprintf(
                '<a href="%s" target="_parent">%s</a>',
                self_admin_url( 'update-core.php' ),
                __( 'Go to WordPress Updates page' )
            ),
Home | Imprint | This part of the site doesn't use cookies.