get_error_message() ), 60 ); } else { set_transient( 'gralus_notice', array( 'success', 'Connected. You can go back to Gralus and test the connection.' ), 60 ); } self::back( array() ); } public static function handle_disconnect() { if ( ! current_user_can( 'manage_options' ) ) { wp_die( 'Not allowed.' ); } check_admin_referer( 'gralus_disconnect' ); Gralus_Connection::clear(); set_transient( 'gralus_notice', array( 'success', 'Disconnected. Nothing on your site was changed.' ), 60 ); self::back( array() ); } public static function handle_sync() { if ( ! current_user_can( 'manage_options' ) ) { wp_die( 'Not allowed.' ); } check_admin_referer( 'gralus_sync' ); $res = Gralus_Site_Info::send(); set_transient( 'gralus_notice', is_wp_error( $res ) ? array( 'error', 'Could not send site details: ' . $res->get_error_message() ) : array( 'success', 'Site details sent.' ), 60 ); self::back( array() ); } public static function render() { if ( ! current_user_can( 'manage_options' ) ) { return; } $c = Gralus_Connection::get(); $notice = get_transient( 'gralus_notice' ); delete_transient( 'gralus_notice' ); $sync = get_option( 'gralus_last_sync' ); ?>

Gralus

Connected since .

Gralus can create drafts on this site and publish the ones you approve. It never deletes posts or pages.

Last site report:

To connect, sign in to Gralus, open Settings → WordPress and click “Connect WordPress”. You’ll be asked to approve Gralus here.

Or paste a connection code from the same page. A code works once and expires in 60 minutes.