esc_url_raw( rest_url( APWPM_REST_API::NAMESPACE . '/' ) ), 'nonce' => wp_create_nonce( 'wp_rest' ), 'multisite' => true, 'isNetwork' => true, 'sites' => self::list_sites(), 'i18n' => self::i18n(), ) ); } public static function render() { if ( ! current_user_can( 'manage_network' ) ) { wp_die( esc_html__( 'You do not have permission to view this page.', 'activitypilot' ) ); } echo '
'; } /** * List blogs on the network (id, blogname, url). */ public static function list_sites() { if ( ! is_multisite() ) { return array(); } $sites = get_sites( array( 'number' => 200, 'orderby' => 'id', ) ); $out = array(); foreach ( (array) $sites as $s ) { $out[] = array( 'id' => (int) $s->blog_id, 'name' => get_blog_option( $s->blog_id, 'blogname', '' ), 'url' => $s->siteurl, ); } return $out; } public static function on_new_blog( $blog_id ) { APWPM_Logger::log( array( 'action_type' => 'blog_created', 'object_type' => 'blog', 'object_id' => (int) $blog_id, 'object_title' => get_blog_option( $blog_id, 'blogname', '' ), 'description' => sprintf( /* translators: %d: blog id */ __( 'New site #%d created.', 'activitypilot' ), (int) $blog_id ), 'severity' => 'success', ) ); } public static function on_initialize_site( $site ) { $blog_id = is_object( $site ) && isset( $site->blog_id ) ? (int) $site->blog_id : 0; if ( $blog_id ) { self::on_new_blog( $blog_id ); } } public static function on_delete_site( $site ) { $blog_id = is_object( $site ) && isset( $site->blog_id ) ? (int) $site->blog_id : 0; APWPM_Logger::log( array( 'action_type' => 'blog_deleted', 'object_type' => 'blog', 'object_id' => $blog_id, 'object_title' => is_object( $site ) ? (string) $site->domain : '', 'description' => sprintf( /* translators: %d: blog id */ __( 'Site #%d removed from the network.', 'activitypilot' ), $blog_id ), 'severity' => 'critical', ) ); } protected static function i18n() { // Reuse the same translation map as the single-site admin. if ( class_exists( 'APWPM_Admin' ) && method_exists( 'APWPM_Admin', 'i18n_strings' ) ) { return APWPM_Admin::i18n_strings(); } return array(); } }