<?php
/**
* Class DuplicateNotice
*
* @package WPDesk\FS\TableRate\ShippingMethod\Duplicate
*/
namespace WPDesk\FS\TableRate\ShippingMethod\Duplicate;
use FSVendor\WPDesk\Notice\Notice;
use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
/**
* Display admin notices.
*/
class DuplicateNotice implements Hookable {
/**
* Hooks.
*/
public function hooks() {
add_action( 'woocommerce_settings_shipping', [ $this, 'add_admin_notice' ] );
}
/**
* Add admin notices.
*/
public function add_admin_notice() {
if ( ! isset( $_GET['status'], $_GET[ DuplicateAction::ACTION ], $_GET['method_title'] ) ) {
return;
}
$status = in_array( $_GET['status'], [ 'success', 'error' ] ) ? $_GET['status'] : 'warning'; // phpcs:ignore
$title = sanitize_text_field( urldecode( wp_unslash( $_GET['method_title'] ) ) ); // phpcs:ignore
if ( $status === 'success' ) {
$message = __( '%1$s%2$s%3$s successfully duplicated.', 'flexible-shipping' ); // phpcs:ignore
} else {
$message = __( '%1$s%2$s%3$s shipping method duplication error. Please try again later.', 'flexible-shipping' ); // phpcs:ignore
}
$this->display_notice( sprintf( $message, '<strong>', $title, '</strong>' ), $status );
}
/**
* @param string $content .
* @param string $type .
*
* @codeCoverageIgnore
*/
protected function display_notice( string $content, string $type ) {
new Notice( $content, $type, true );
}
}