activate_plugin example

require_once ABSPATH . 'wp-admin/admin-footer.php';

    } elseif ( 'activate-plugin' === $action ) {
        if ( ! current_user_can( 'update_plugins' ) ) {
            wp_die( __( 'Sorry, you are not allowed to update plugins for this site.' ) );
        }

        check_admin_referer( 'activate-plugin_' . $plugin );
        if ( ! isset( $_GET['failure'] ) && ! isset( $_GET['success'] ) ) {
            wp_redirect( admin_url( 'update.php?action=activate-plugin&failure=true&plugin=' . urlencode( $plugin ) . '&_wpnonce=' . $_GET['_wpnonce'] ) );
            activate_plugin( $plugin, '', ! empty( $_GET['networkwide'] ), true );
            wp_redirect( admin_url( 'update.php?action=activate-plugin&success=true&plugin=' . urlencode( $plugin ) . '&_wpnonce=' . $_GET['_wpnonce'] ) );
            die();
        }
        iframe_header( __( 'Plugin Reactivation' ), true );
        if ( isset( $_GET['success'] ) ) {
            echo '<p>' . __( 'Plugin reactivated successfully.' ) . '</p>';
        }

        if ( isset( $_GET['failure'] ) ) {
            echo '<p>' . __( 'Plugin failed to reactivate due to a fatal error.' ) . '</p>';

            
$network_activate = 'network-active' === $new_status;

        if ( is_multisite() && ! $network_activate && is_network_only_plugin( $plugin ) ) {
            return new WP_Error(
                'rest_network_only_plugin',
                __( 'Network only plugin must be network activated.' ),
                array( 'status' => 400 )
            );
        }

        $activated = activate_plugin( $plugin, '', $network_activate );

        if ( is_wp_error( $activated ) ) {
            $activated->add_data( array( 'status' => 500 ) );

            return $activated;
        }

        return true;
    }

    /** * Checks that the "plugin" parameter is a valid path. * * @since 5.5.0 * * @param string $file The plugin file parameter. * @return bool */
if ( ! current_user_can( 'activate_plugin', $plugin ) ) {
                wp_die( __( 'Sorry, you are not allowed to activate this plugin.' ) );
            }

            if ( is_multisite() && ! is_network_admin() && is_network_only_plugin( $plugin ) ) {
                wp_redirect( self_admin_url( "plugins.php?plugin_status=$status&paged=$page&s=$s) );
                exit;
            }

            check_admin_referer( 'activate-plugin_' . $plugin );

            $result = activate_plugin( $pluginself_admin_url( 'plugins.php?error=true&plugin=' . urlencode( $plugin ) )is_network_admin() );
            if ( is_wp_error( $result ) ) {
                if ( 'unexpected_output' === $result->get_error_code() ) {
                    $redirect = self_admin_url( 'plugins.php?error=true&charsout=' . strlen( $result->get_error_data() ) . '&plugin=' . urlencode( $plugin ) . "&plugin_status=$status&paged=$page&s=$s);
                    wp_redirect( add_query_arg( '_error_nonce', wp_create_nonce( 'plugin-activation-error_' . $plugin )$redirect ) );
                    exit;
                } else {
                    wp_die( $result );
                }
            }

            if ( ! is_network_admin() ) {
                

function activate_plugins( $plugins$redirect = '', $network_wide = false, $silent = false ) {
    if ( ! is_array( $plugins ) ) {
        $plugins = array( $plugins );
    }

    $errors = array();
    foreach ( $plugins as $plugin ) {
        if ( ! empty( $redirect ) ) {
            $redirect = add_query_arg( 'plugin', $plugin$redirect );
        }
        $result = activate_plugin( $plugin$redirect$network_wide$silent );
        if ( is_wp_error( $result ) ) {
            $errors[ $plugin ] = $result;
        }
    }

    if ( ! empty( $errors ) ) {
        return new WP_Error( 'plugins_invalid', __( 'One of the plugins is invalid.' )$errors );
    }

    return true;
}

Home | Imprint | This part of the site doesn't use cookies.