<?php /** * Class DuplicateScript * * @package WPDesk\FS\TableRate\ShippingMethod\Duplicate */ namespace WPDesk\FS\TableRate\ShippingMethod\Duplicate; use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable; /** * Duplicate Script. */ class DuplicateScript implements Hookable { /** * @var string */ private $assets_url; /** * @var string */ private $scripts_version; /** * DuplicateScript constructor. * * @param string $assets_url . * @param string $scripts_version . */ public function __construct( string $assets_url, string $scripts_version ) { $this->assets_url = $assets_url; $this->scripts_version = $scripts_version; } /** * Init hooks (actions and filters). * * @return void */ public function hooks() { add_action( 'woocommerce_shipping_zone_after_methods_table', [ $this, 'add_duplicate_scripts' ] ); } /** * . */ public function add_duplicate_scripts() { $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; $handle = 'fs_duplicate_methods'; wp_enqueue_script( $handle, trailingslashit( $this->assets_url ) . 'js/duplicate-methods' . $suffix . '.js', [ 'jquery', 'wc-shipping-zone-methods' ], $this->scripts_version ); wp_localize_script( $handle, 'fs_duplicate_methods', [ 'param_name' => DuplicateAction::PARAM_ID, 'shipping_method' => __( 'Flexible Shipping', 'flexible-shipping' ), 'duplicate_label' => __( 'Duplicate', 'flexible-shipping' ), 'duplicate_url' => wp_nonce_url( add_query_arg( 'action', DuplicateAction::ACTION, admin_url( 'admin-post.php' ) ), DuplicateAction::ACTION ), ] ); } }