File "Onboarding.php"
Full Path: /home/jlklyejr/public_html/wp-content/test/wp-content/plugins/flexible-shipping/src/WPDesk/FS/Onboarding/TableRate/Onboarding.php
File size: 3.22 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Assets.
*
* @package WPDesk\FS\Onboarding
*/
namespace WPDesk\FS\Onboarding\TableRate;
use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
use WPDesk\FS\Helpers\FlexibleShippingMethodsChecker;
use WPDesk\FS\Helpers\WooSettingsPageChecker;
/**
* Onboarding hooks.
*/
class Onboarding implements Hookable {
/**
* @var FinishOption .
*/
private $finish_option;
/**
* @var string .
*/
private $scripts_version;
/**
* @var string .
*/
private $plugin_assets_url;
/**
* @var WooSettingsPageChecker
*/
private $setting_page_checker;
/**
* @var FlexibleShippingMethodsChecker
*/
private $fs_methods_checker;
/**
* @var array
*/
private $popups;
/**
* @param FinishOption $finish_option .
* @param string $scripts_version .
* @param string $plugin_assets_url .
* @param WooSettingsPageChecker $setting_page_checker .
*/
public function __construct(
FinishOption $finish_option,
string $scripts_version,
string $plugin_assets_url,
WooSettingsPageChecker $setting_page_checker,
FlexibleShippingMethodsChecker $fs_methods_checker,
array $popups
) {
$this->finish_option = $finish_option;
$this->scripts_version = $scripts_version;
$this->plugin_assets_url = $plugin_assets_url;
$this->setting_page_checker = $setting_page_checker;
$this->fs_methods_checker = $fs_methods_checker;
$this->popups = $popups;
}
/**
* Hooks.
*/
public function hooks() {
add_action( 'flexible-shipping/admin/enqueue_scripts', [ $this, 'register_scripts' ] );
add_action( 'flexible-shipping/method-rules-settings/table/before', [ $this, 'add_onboarding_container' ] );
}
/**
* Add onboarding container.
*/
public function add_onboarding_container() {
include wp_normalize_path( __DIR__ . '/views/before-table-method-rules-settings.php' );
}
public function register_scripts() {
if ( ! $this->setting_page_checker->is_fs_instance_method_edit() ) {
return;
}
wp_enqueue_style( 'wpdesk_onboarding', sprintf( '%scss/onboarding.css', $this->plugin_assets_url ), [], $this->scripts_version );
wp_enqueue_script(
'wpdesk_onboarding',
sprintf( '%sjs/onboarding.js', $this->plugin_assets_url ),
[ 'jquery' ],
$this->scripts_version,
true
);
wp_localize_script(
'wpdesk_onboarding',
'fs_onboarding_details',
[
'ajax' => [
'url' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce( OptionAjaxUpdater::NONCE_ACTION ),
'action' => [
'event' => OptionAjaxUpdater::AJAX_ACTION_EVENT,
'click' => OptionAjaxUpdater::AJAX_ACTION_CLICK,
'auto_show_popup' => OptionAjaxUpdater::AJAX_ACTION_AUTO_SHOP_POPUP,
],
],
'assets_url' => untrailingslashit( $this->plugin_assets_url ),
'label_step' => __( 'Step #', 'flexible-shipping' ),
'logo_img' => 'logo-fs.svg',
'steps' => 4,
'locale' => get_user_locale(),
'open_auto' => $this->should_auto_load(),
'popups' => $this->popups,
]
);
}
/**
* @return bool
*/
private function should_auto_load(): bool {
return ! $this->finish_option->is_option_set() && $this->fs_methods_checker->is_new_shipping_method();
}
}