postnl_cutoff_time */ // Defaults public const SETTING_CARRIER_DEFAULT_EXPORT_SIGNATURE = "export_signature"; public const SETTING_CARRIER_DEFAULT_EXPORT_ONLY_RECIPIENT = "export_only_recipient"; public const SETTING_CARRIER_DEFAULT_EXPORT_AGE_CHECK = "export_age_check"; public const SETTING_CARRIER_DEFAULT_EXPORT_RETURN = "export_return_shipments"; public const SETTING_CARRIER_DEFAULT_EXPORT_INSURED = "export_insured"; public const SETTING_CARRIER_DEFAULT_EXPORT_INSURED_AMOUNT = "export_insured_amount"; public const SETTING_CARRIER_DEFAULT_EXPORT_INSURED_FROM_PRICE = "export_insured_from_price"; // Delivery options settings public const SETTING_CARRIER_CUTOFF_TIME = "cutoff_time"; public const SETTING_CARRIER_DELIVERY_DAYS_WINDOW = "delivery_days_window"; public const SETTING_CARRIER_DELIVERY_ENABLED = "delivery_enabled"; public const SETTING_CARRIER_DROP_OFF_DAYS = "drop_off_days"; public const SETTING_CARRIER_DROP_OFF_DELAY = "drop_off_delay"; public const SETTING_CARRIER_PICKUP_ENABLED = "pickup_enabled"; public const SETTING_CARRIER_PICKUP_FEE = "pickup_fee"; public const SETTING_CARRIER_PICKUP_TITLE = "pickup_title"; public const SETTING_CARRIER_ONLY_RECIPIENT_ENABLED = "only_recipient_enabled"; public const SETTING_CARRIER_ONLY_RECIPIENT_FEE = "only_recipient_fee"; public const SETTING_CARRIER_SIGNATURE_ENABLED = "signature_enabled"; public const SETTING_CARRIER_SIGNATURE_FEE = "signature_fee"; public const SETTING_CARRIER_DELIVERY_MORNING_ENABLED = "delivery_morning_enabled"; public const SETTING_CARRIER_DELIVERY_MORNING_FEE = "delivery_morning_fee"; public const SETTING_CARRIER_DELIVERY_EVENING_ENABLED = "delivery_evening_enabled"; public const SETTING_CARRIER_DELIVERY_EVENING_FEE = "delivery_evening_fee"; // Saturday delivery // TODO; Currently not implemented public const SETTING_CARRIER_FRIDAY_CUTOFF_TIME = "friday_cutoff_time"; public const SETTING_CARRIER_SATURDAY_DELIVERY_ENABLED = "saturday_delivery_enabled"; public const SETTING_CARRIER_SATURDAY_DELIVERY_FEE = "saturday_delivery_fee"; // Monday delivery public const SETTING_CARRIER_MONDAY_DELIVERY_ENABLED = "monday_delivery_enabled"; public const SETTING_CARRIER_MONDAY_DELIVERY_FEE = "monday_delivery_fee"; public const SETTING_CARRIER_SATURDAY_CUTOFF_TIME = "saturday_cutoff_time"; public function __construct() { add_action("admin_menu", [$this, "menu"]); add_filter( "plugin_action_links_" . WCPOST()->plugin_basename, [ $this, "add_settings_link", ] ); /** * Add the new screen to the woocommerce screen ids to make wc tooltips work. */ add_filter( "woocommerce_screen_ids", function($ids) { $ids[] = "woocommerce_page_" . self::SETTINGS_MENU_SLUG; return $ids; } ); // Create the admin settings require_once("class-wcpn-settings-data.php"); // notice for WooCommerce PostNL plugin add_action("woocommerce_postnl_before_settings_page", [$this, "postnl_country_notice"], 10, 1); } /** * Add settings item to WooCommerce menu */ public function menu() { add_submenu_page( "woocommerce", __("PostNL", "woocommerce-postnl"), __("PostNL", "woocommerce-postnl"), "manage_options", self::SETTINGS_MENU_SLUG, [$this, "settings_page"] ); } /** * Add settings link to plugins page * * @param array $links * * @return array */ public function add_settings_link(array $links): array { $url = admin_url("admin.php?page=" . self::SETTINGS_MENU_SLUG); array_push( $links, sprintf( '%s', $url, __("Settings", "woocommerce-postnl") ) ); return $links; } /** * Output the settings pages. */ public function settings_page() { $settings_tabs = apply_filters( self::SETTINGS_MENU_SLUG . "_tabs", WCPN_Settings_Data::getTabs() ); $active_tab = isset($_GET["tab"]) ? $_GET["tab"] : self::SETTINGS_GENERAL; ?>
%s %s