/**
  * Initialize the plugin by loading admin scripts & styles and adding a
  * settings page and menu.
  *
  * @since 2.9.0
  */
 private function __construct()
 {
     global $woocommerce;
     $this->plugin_slug = Extra_Checkout_Fields_For_Brazil::get_plugin_slug();
     if (!Extra_Checkout_Fields_For_Brazil::has_woocommerce_active()) {
         add_action('admin_notices', array($this, 'woocommerce_fallback_notice'));
     } else {
         // Load admin style sheet and JavaScript.
         add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'));
         // Add the options page and menu item.
         add_action('admin_menu', array($this, 'add_plugin_admin_menu'), 59);
         // Init plugin options form.
         add_action('admin_init', array($this, 'plugin_settings'));
         // Custom shop_order details.
         add_filter('woocommerce_admin_billing_fields', array($this, 'shop_order_billing_fields'));
         add_filter('woocommerce_admin_shipping_fields', array($this, 'shop_order_shipping_fields'));
         add_action('woocommerce_admin_order_data_after_billing_address', array($this, 'order_data_after_billing_address'));
         add_action('woocommerce_admin_order_data_after_shipping_address', array($this, 'order_data_after_shipping_address'));
         add_action('save_post', array($this, 'save_shop_data_fields'));
         // Custom address format.
         if (version_compare($woocommerce->version, '2.0.6', '>=')) {
             add_filter('woocommerce_customer_meta_fields', array($this, 'user_edit_fields'));
         }
     }
 }
 /**
  * Return an instance of this class.
  *
  * @return object A single instance of this class.
  */
 public static function get_instance()
 {
     // If the single instance hasn't been set, set it now.
     if (null == self::$instance) {
         self::$instance = new self();
     }
     return self::$instance;
 }
 /**
  * Admin scripts
  */
 public function admin_scripts()
 {
     $screen = get_current_screen();
     $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
     if ('shop_order' == $screen->id) {
         // Get plugin settings.
         $settings = get_option('wcbcf_settings');
         // Styles.
         wp_enqueue_style('woocommerce-extra-checkout-fields-for-brazil-admin', Extra_Checkout_Fields_For_Brazil::get_assets_url() . 'css/admin/admin.css', array(), Extra_Checkout_Fields_For_Brazil::VERSION);
         // Shop order.
         wp_enqueue_script('woocommerce-extra-checkout-fields-for-brazil-shop-order', Extra_Checkout_Fields_For_Brazil::get_assets_url() . 'js/admin/shop-order' . $suffix . '.js', array('jquery'), Extra_Checkout_Fields_For_Brazil::VERSION, true);
         // Localize strings.
         wp_localize_script('woocommerce-extra-checkout-fields-for-brazil-shop-order', 'wcbcf_shop_order_params', array('load_message' => esc_js(__('Load the customer extras data?', 'woocommerce-extra-checkout-fields-for-brazil')), 'copy_message' => esc_js(__('Also copy the data of number and neighborhood?', 'woocommerce-extra-checkout-fields-for-brazil')), 'person_type' => absint($settings['person_type'])));
     }
     if ('woocommerce_page_woocommerce-extra-checkout-fields-for-brazil' == $screen->id) {
         wp_enqueue_script('woocommerce-extra-checkout-fields-for-brazil-admin', Extra_Checkout_Fields_For_Brazil::get_assets_url() . 'js/admin/admin' . $suffix . '.js', array('jquery'), Extra_Checkout_Fields_For_Brazil::VERSION);
     }
 }
 /**
  * Admin scripts
  *
  * @return void
  */
 public function admin_scripts()
 {
     global $woocommerce;
     $screen = get_current_screen();
     if ('shop_order' == $screen->id) {
         // Get plugin settings.
         $settings = get_option('wcbcf_settings');
         // Styles.
         wp_enqueue_style('woocommerce-extra-checkout-fields-for-brazil-admin', Extra_Checkout_Fields_For_Brazil::get_assets_url() . 'css/admin/admin.css', array(), Extra_Checkout_Fields_For_Brazil::VERSION);
         // Shop order.
         if (version_compare($woocommerce->version, '2.1', '>=')) {
             $shop_order_js = Extra_Checkout_Fields_For_Brazil::get_assets_url() . 'js/admin/shop-order.min.js';
         } else {
             $shop_order_js = Extra_Checkout_Fields_For_Brazil::get_assets_url() . 'js/admin/shop-order.old.min.js';
         }
         wp_enqueue_script('woocommerce-extra-checkout-fields-for-brazil-shop-order', $shop_order_js, array('jquery'), Extra_Checkout_Fields_For_Brazil::VERSION, true);
         // Localize strings.
         wp_localize_script('woocommerce-extra-checkout-fields-for-brazil-shop-order', 'wcbcf_writepanel_params', array('load_message' => __('Load the customer extras data?', 'woocommerce-extra-checkout-fields-for-brazil'), 'copy_message' => __('Also copy the data of number and neighborhood?', 'woocommerce-extra-checkout-fields-for-brazil'), 'person_type' => $settings['person_type']));
     }
     if ('woocommerce_page_woocommerce-extra-checkout-fields-for-brazil' == $screen->id) {
         wp_enqueue_script('woocommerce-extra-checkout-fields-for-brazil-admin', Extra_Checkout_Fields_For_Brazil::get_assets_url() . 'js/admin/admin.min.js', array('jquery'), Extra_Checkout_Fields_For_Brazil::VERSION);
     }
 }