60 lines
2.3 KiB
PHP
60 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* Builds admin notices from redirect query args.
|
|
*
|
|
* @package WPContentSync
|
|
*/
|
|
|
|
namespace WPContentSync\Admin;
|
|
|
|
final class AdminNoticeRepository {
|
|
/**
|
|
* @return array<int, AdminNotice>
|
|
*/
|
|
public function current(): array {
|
|
$notices = array();
|
|
|
|
// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Reads redirect-only admin notice query args.
|
|
if ( isset( $_GET['wpcs_imported'] ) ) {
|
|
$notices[] = new AdminNotice( 'success', __( 'The package JSON file was imported successfully.', 'wp-content-sync' ) );
|
|
}
|
|
|
|
// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Reads redirect-only admin notice query args.
|
|
if ( isset( $_GET['wpcs_import_error'] ) ) {
|
|
$notices[] = new AdminNotice( 'error', $this->queryValue( 'wpcs_import_error' ) );
|
|
}
|
|
|
|
// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Reads redirect-only admin notice query args.
|
|
if ( isset( $_GET['wpcs_settings_saved'] ) ) {
|
|
$notices[] = new AdminNotice( 'success', __( 'Settings saved.', 'wp-content-sync' ) );
|
|
}
|
|
|
|
// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Reads redirect-only admin notice query args.
|
|
if ( isset( $_GET['wpcs_connection_ok'] ) ) {
|
|
$notices[] = new AdminNotice( 'success', __( 'REST connection succeeded.', 'wp-content-sync' ) );
|
|
}
|
|
|
|
// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Reads redirect-only admin notice query args.
|
|
if ( isset( $_GET['wpcs_logs_cleared'] ) ) {
|
|
$notices[] = new AdminNotice( 'success', __( 'Logs cleared.', 'wp-content-sync' ) );
|
|
}
|
|
|
|
// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Reads redirect-only admin notice query args.
|
|
if ( isset( $_GET['wpcs_connection_error'] ) ) {
|
|
$notices[] = new AdminNotice( 'error', $this->queryValue( 'wpcs_connection_error' ) );
|
|
}
|
|
|
|
// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Reads redirect-only admin notice query args.
|
|
if ( isset( $_GET['wpcs_export_error'] ) ) {
|
|
$notices[] = new AdminNotice( 'error', $this->queryValue( 'wpcs_export_error' ) );
|
|
}
|
|
|
|
return $notices;
|
|
}
|
|
|
|
private function queryValue( string $key ): string {
|
|
// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Reads redirect-only admin notice query args.
|
|
return sanitize_text_field( wp_unslash( $_GET[ $key ] ?? '' ) );
|
|
}
|
|
}
|