| @@ -12,17 +12,11 @@ | ||
| 12 | 12 | use DateTime; |
| 13 | 13 | use Packetery\Core\Api; |
| 14 | 14 | use Packetery\Core\Api\Soap\Request\SenderGetReturnRouting; |
| 15 | 15 | use Packetery\Core\CoreHelper; |
| 16 | -use Packetery\Core\Entity\PacketStatus; | |
| 17 | 16 | use Packetery\Core\Log; |
| 18 | 17 | use Packetery\Latte\Engine; |
| 19 | -use Packetery\Module\Dashboard\DashboardPage; | |
| 20 | -use Packetery\Module\DiagnosticsLogger\DiagnosticsLogger; | |
| 21 | 18 | use Packetery\Module\FormFactory; |
| 22 | -use Packetery\Module\Forms\BugReportForm; | |
| 23 | -use Packetery\Module\Forms\DiagnosticsLoggingFormFactory; | |
| 24 | -use Packetery\Module\Framework\WpAdapter; | |
| 25 | 19 | use Packetery\Module\MessageManager; |
| 26 | 20 | use Packetery\Module\ModuleHelper; |
| 27 | 21 | use Packetery\Module\Order\PacketAutoSubmitter; |
| 28 | 22 | use Packetery\Module\Order\PacketSynchronizer; |
| @@ -27,9 +21,8 @@ | ||
| 27 | 21 | use Packetery\Module\Order\PacketAutoSubmitter; |
| 28 | 22 | use Packetery\Module\Order\PacketSynchronizer; |
| 29 | 23 | use Packetery\Module\PaymentGatewayHelper; |
| 30 | 24 | use Packetery\Module\Views\UrlBuilder; |
| 31 | -use Packetery\Module\WcLogger; | |
| 32 | 25 | use Packetery\Nette\Forms\Container; |
| 33 | 26 | use Packetery\Nette\Forms\Controls\BaseControl; |
| 34 | 27 | use Packetery\Nette\Forms\Controls\SubmitButton; |
| 35 | 28 | use Packetery\Nette\Forms\Form; |
| @@ -41,13 +34,12 @@ | ||
| 41 | 34 | * @package Packetery\Options |
| 42 | 35 | */ |
| 43 | 36 | class Page { |
| 44 | 37 | |
| 45 | - private const FORM_FIELDS_CONTAINER = 'packetery'; | |
| 46 | - private const FORM_FIELD_PACKETA_LABEL_FORMAT = 'packeta_label_format'; | |
| 47 | - private const FORM_FIELD_CARRIER_LABEL_FORMAT = 'carrier_label_format'; | |
| 48 | - private const FORM_FIELD_FREE_SHIPPING_SHOWN = 'free_shipping_shown'; | |
| 49 | - public const FORM_PICKUP_POINT_VALIDATION_ENABLED = 'pickup_point_validation_enabled'; | |
| 38 | + private const FORM_FIELDS_CONTAINER = 'packetery'; | |
| 39 | + private const FORM_FIELD_PACKETA_LABEL_FORMAT = 'packeta_label_format'; | |
| 40 | + private const FORM_FIELD_CARRIER_LABEL_FORMAT = 'carrier_label_format'; | |
| 41 | + private const FORM_FIELD_FREE_SHIPPING_SHOWN = 'free_shipping_shown'; | |
| 50 | 42 | |
| 51 | 43 | public const ACTION_VALIDATE_SENDER = 'validate-sender'; |
| 52 | 44 | |
| 53 | 45 | public const SLUG = 'packeta-options'; |
| @@ -59,10 +51,8 @@ | ||
| 59 | 51 | public const TAB_AUTO_SUBMISSION = 'auto-submission'; |
| 60 | 52 | |
| 61 | 53 | public const PARAM_TAB = 'tab'; |
| 62 | 54 | |
| 63 | - const PACKETA_SVG_LOGO = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IlZyc3R2YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMzcgNDAiIHN0eWxlPSJmaWxsOiNhN2FhYWQiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiAjYTdhYWFkO30KPC9zdHlsZT4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTE5LjQsMTYuMWwtMC45LDAuNGwtMC45LTAuNGwtMTMtNi41bDYuMi0yLjRsMTMuNCw2LjVMMTkuNCwxNi4xeiBNMzIuNSw5LjZsLTQuNywyLjNsLTEzLjUtNmw0LjItMS42CglMMzIuNSw5LjZ6Ii8+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xOSwwbDE3LjIsNi42bC0yLjQsMS45bC0xNS4yLTZMMy4yLDguNkwwLjgsNi42TDE4LDBMMTksMEwxOSwweiBNMzQuMSw5LjFsMi44LTEuMWwtMi4xLDE3LjZsLTAuNCwwLjgKCUwxOS40LDQwbC0wLjUtMy4xbDEzLjQtMTJMMzQuMSw5LjF6IE0yLjUsMjYuNWwtMC40LTAuOEwwLDguMWwyLjgsMS4xbDEuOSwxNS43bDEzLjQsMTJMMTcuNiw0MEwyLjUsMjYuNXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTI4LjIsMTIuNGw0LjMtMi43bC0xLjcsMTQuMkwxOC42LDM1bDAuNi0xN2w1LjQtMy4zTDI0LjMsMjNsMy4zLTIuM0wyOC4yLDEyLjR6Ii8+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNy43LDE3LjlsMC42LDE3bC0xMi4yLTExTDQuNCw5LjhMMTcuNywxNy45eiIvPgo8L3N2Zz4K'; | |
| 64 | - | |
| 65 | 55 | /** |
| 66 | 56 | * PacketeryLatte_engine. |
| 67 | 57 | * |
| 68 | 58 | * @var Engine PacketeryLatte engine. |
| @@ -119,35 +109,12 @@ | ||
| 119 | 109 | */ |
| 120 | 110 | private $urlBuilder; |
| 121 | 111 | |
| 122 | 112 | /** |
| 123 | - * @var PacketSynchronizer | |
| 124 | - */ | |
| 125 | - private $packetSynchronizer; | |
| 126 | - | |
| 127 | - /** | |
| 128 | - * @var WpAdapter | |
| 129 | - */ | |
| 130 | - private $wpAdapter; | |
| 131 | - | |
| 132 | - /** | |
| 133 | 113 | * @var string |
| 134 | 114 | */ |
| 135 | 115 | private $supportEmailAddress; |
| 136 | 116 | |
| 137 | - /** | |
| 138 | - * @var BugReportForm | |
| 139 | - */ | |
| 140 | - private $bugReportForm; | |
| 141 | - | |
| 142 | - /** | |
| 143 | - * @var DiagnosticsLoggingFormFactory | |
| 144 | - */ | |
| 145 | - private $diagnosticsLoggingFormFactory; | |
| 146 | - | |
| 147 | - /** @var DiagnosticsLogger */ | |
| 148 | - private $diagnosticsLogger; | |
| 149 | - | |
| 150 | 117 | public function __construct( |
| 151 | 118 | Engine $latteEngine, |
| 152 | 119 | OptionsProvider $optionsProvider, |
| 153 | 120 | FormFactory $formFactory, |
| @@ -156,55 +123,40 @@ | ||
| 156 | 123 | MessageManager $messageManager, |
| 157 | 124 | Http\Request $httpRequest, |
| 158 | 125 | ModuleHelper $moduleHelper, |
| 159 | 126 | UrlBuilder $urlBuilder, |
| 160 | - PacketSynchronizer $packetSynchronizer, | |
| 161 | - WpAdapter $wpAdapter, | |
| 162 | - string $supportEmailAddress, | |
| 163 | - BugReportForm $bugReportForm, | |
| 164 | - DiagnosticsLoggingFormFactory $diagnosticsLoggingFormFactory, | |
| 165 | - DiagnosticsLogger $diagnosticsLogger | |
| 127 | + string $supportEmailAddress | |
| 166 | 128 | ) { |
| 167 | - $this->latteEngine = $latteEngine; | |
| 168 | - $this->optionsProvider = $optionsProvider; | |
| 169 | - $this->formFactory = $formFactory; | |
| 170 | - $this->packetaClient = $packetaClient; | |
| 171 | - $this->logger = $logger; | |
| 172 | - $this->messageManager = $messageManager; | |
| 173 | - $this->httpRequest = $httpRequest; | |
| 174 | - $this->moduleHelper = $moduleHelper; | |
| 175 | - $this->urlBuilder = $urlBuilder; | |
| 176 | - $this->packetSynchronizer = $packetSynchronizer; | |
| 177 | - $this->supportEmailAddress = $supportEmailAddress; | |
| 178 | - $this->wpAdapter = $wpAdapter; | |
| 179 | - $this->bugReportForm = $bugReportForm; | |
| 180 | - $this->diagnosticsLoggingFormFactory = $diagnosticsLoggingFormFactory; | |
| 181 | - $this->diagnosticsLogger = $diagnosticsLogger; | |
| 129 | + $this->latteEngine = $latteEngine; | |
| 130 | + $this->optionsProvider = $optionsProvider; | |
| 131 | + $this->formFactory = $formFactory; | |
| 132 | + $this->packetaClient = $packetaClient; | |
| 133 | + $this->logger = $logger; | |
| 134 | + $this->messageManager = $messageManager; | |
| 135 | + $this->httpRequest = $httpRequest; | |
| 136 | + $this->moduleHelper = $moduleHelper; | |
| 137 | + $this->urlBuilder = $urlBuilder; | |
| 138 | + $this->supportEmailAddress = $supportEmailAddress; | |
| 182 | 139 | } |
| 183 | 140 | |
| 141 | + /** | |
| 142 | + * Registers WP callbacks. | |
| 143 | + */ | |
| 184 | 144 | public function register(): void { |
| 185 | - add_action( 'admin_init', [ $this, 'admin_init' ] ); | |
| 186 | - add_action( 'admin_init', [ $this, 'processActions' ] ); | |
| 187 | - add_filter( 'custom_menu_order', '__return_true' ); | |
| 188 | - add_filter( 'menu_order', [ $this, 'customMenuOrder' ] ); | |
| 189 | - } | |
| 190 | - | |
| 191 | - public function registerMenuPage(): void { | |
| 192 | - $this->wpAdapter->addMenuPage( | |
| 193 | - $this->wpAdapter->__( 'Packeta', 'packeta' ), | |
| 194 | - $this->wpAdapter->__( 'Packeta', 'packeta' ), | |
| 145 | + add_action( 'admin_init', array( $this, 'admin_init' ) ); | |
| 146 | + $icon = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IlZyc3R2YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMzcgNDAiIHN0eWxlPSJmaWxsOiNhN2FhYWQiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiAjYTdhYWFkO30KPC9zdHlsZT4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTE5LjQsMTYuMWwtMC45LDAuNGwtMC45LTAuNGwtMTMtNi41bDYuMi0yLjRsMTMuNCw2LjVMMTkuNCwxNi4xeiBNMzIuNSw5LjZsLTQuNywyLjNsLTEzLjUtNmw0LjItMS42CglMMzIuNSw5LjZ6Ii8+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xOSwwbDE3LjIsNi42bC0yLjQsMS45bC0xNS4yLTZMMy4yLDguNkwwLjgsNi42TDE4LDBMMTksMEwxOSwweiBNMzQuMSw5LjFsMi44LTEuMWwtMi4xLDE3LjZsLTAuNCwwLjgKCUwxOS40LDQwbC0wLjUtMy4xbDEzLjQtMTJMMzQuMSw5LjF6IE0yLjUsMjYuNWwtMC40LTAuOEwwLDguMWwyLjgsMS4xbDEuOSwxNS43bDEzLjQsMTJMMTcuNiw0MEwyLjUsMjYuNXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTI4LjIsMTIuNGw0LjMtMi43bC0xLjcsMTQuMkwxOC42LDM1bDAuNi0xN2w1LjQtMy4zTDI0LjMsMjNsMy4zLTIuM0wyOC4yLDEyLjR6Ii8+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNy43LDE3LjlsMC42LDE3bC0xMi4yLTExTDQuNCw5LjhMMTcuNywxNy45eiIvPgo8L3N2Zz4K'; | |
| 147 | + add_menu_page( | |
| 148 | + __( 'Packeta', 'packeta' ), | |
| 149 | + __( 'Packeta', 'packeta' ), | |
| 195 | 150 | 'manage_options', |
| 196 | - DashboardPage::SLUG, | |
| 151 | + self::SLUG, | |
| 197 | 152 | function () {}, |
| 198 | - self::PACKETA_SVG_LOGO | |
| 153 | + $icon | |
| 199 | 154 | ); |
| 200 | - } | |
| 201 | - | |
| 202 | - public function registerSubmenuPage(): void { | |
| 203 | - $this->wpAdapter->addSubmenuPage( | |
| 204 | - DashboardPage::SLUG, | |
| 205 | - $this->wpAdapter->__( 'Settings', 'packeta' ), | |
| 206 | - $this->wpAdapter->__( 'Settings', 'packeta' ), | |
| 155 | + add_submenu_page( | |
| 156 | + self::SLUG, | |
| 157 | + __( 'Settings', 'packeta' ), | |
| 158 | + __( 'Settings', 'packeta' ), | |
| 207 | 159 | 'manage_options', |
| 208 | 160 | self::SLUG, |
| 209 | 161 | array( |
| 210 | 162 | $this, |
| @@ -211,24 +163,22 @@ | ||
| 211 | 163 | 'render', |
| 212 | 164 | ), |
| 213 | 165 | 1 |
| 214 | 166 | ); |
| 167 | + add_action( 'admin_init', [ $this, 'processActions' ] ); | |
| 168 | + | |
| 169 | + add_filter( 'custom_menu_order', '__return_true' ); | |
| 170 | + add_filter( 'menu_order', [ $this, 'customMenuOrder' ] ); | |
| 215 | 171 | } |
| 216 | 172 | |
| 217 | 173 | /** |
| 218 | 174 | * Returns menu_order with Packeta item in last position. |
| 219 | 175 | * |
| 220 | - * @param array|mixed $menuOrder WP $menu_order. | |
| 176 | + * @param array $menuOrder WP $menu_order. | |
| 221 | 177 | * |
| 222 | - * @return array|mixed | |
| 178 | + * @return array | |
| 223 | 179 | */ |
| 224 | - public function customMenuOrder( $menuOrder ) { | |
| 225 | - if ( ! is_array( $menuOrder ) ) { | |
| 226 | - WcLogger::logArgumentTypeError( __METHOD__, 'menuOrder', 'array', $menuOrder ); | |
| 227 | - | |
| 228 | - return $menuOrder; | |
| 229 | - } | |
| 230 | - | |
| 180 | + public function customMenuOrder( array $menuOrder ): array { | |
| 231 | 181 | $currentPosition = array_search( self::SLUG, $menuOrder, true ); |
| 232 | 182 | |
| 233 | 183 | if ( $currentPosition !== false ) { |
| 234 | 184 | unset( $menuOrder[ $currentPosition ] ); |
| @@ -276,35 +226,15 @@ | ||
| 276 | 226 | return $statuses; |
| 277 | 227 | } |
| 278 | 228 | |
| 279 | 229 | /** |
| 280 | - * Gets status syncing packet statuses. | |
| 281 | - * | |
| 282 | - * @return array<string, array{key: int|string, default: bool, label:string}> | |
| 283 | - */ | |
| 284 | - public function getStatusSyncingPacketStatusesChoiceData(): array { | |
| 285 | - $statuses = $this->packetSynchronizer->getDefaultPacketStatuses(); | |
| 286 | - | |
| 287 | - return $this->createPacketStatusChoiceData( $statuses ); | |
| 288 | - } | |
| 289 | - | |
| 290 | - /** | |
| 291 | 230 | * Gets all packet statuses. |
| 292 | 231 | * |
| 293 | - * @return array<string, array{key: int|string, default: bool, label:string}> | |
| 232 | + * @return array | |
| 294 | 233 | */ |
| 295 | - public function getAllPacketStatusesChoiceData(): array { | |
| 296 | - $statuses = $this->packetSynchronizer->getPacketStatuses(); | |
| 234 | + public function getPacketStatusesChoiceData(): array { | |
| 235 | + $statuses = PacketSynchronizer::getPacketStatuses(); | |
| 297 | 236 | |
| 298 | - return $this->createPacketStatusChoiceData( $statuses ); | |
| 299 | - } | |
| 300 | - | |
| 301 | - /** | |
| 302 | - * @param PacketStatus[] $statuses Packet statuses. | |
| 303 | - * | |
| 304 | - * @return array<string, array{key: int|string, default: bool, label:string}> | |
| 305 | - */ | |
| 306 | - private function createPacketStatusChoiceData( array $statuses ): array { | |
| 307 | 237 | $result = []; |
| 308 | 238 | |
| 309 | 239 | foreach ( $statuses as $status => $statusEntity ) { |
| 310 | 240 | $result[ md5( $status ) ] = [ |
| @@ -343,9 +273,9 @@ | ||
| 343 | 273 | */ |
| 344 | 274 | public function createAutoSubmissionForm(): Form { |
| 345 | 275 | $gateways = PaymentGatewayHelper::getAvailablePaymentGateways(); |
| 346 | 276 | $form = $this->formFactory->create( 'packetery_auto_submission_form' ); |
| 347 | - $defaults = $this->optionsProvider->getOptionsByName( OptionNames::PACKETERY_AUTO_SUBMISSION ); | |
| 277 | + $defaults = $this->optionsProvider->getOptionsByName( OptionsProvider::OPTION_NAME_PACKETERY_AUTO_SUBMISSION ); | |
| 348 | 278 | |
| 349 | 279 | $form->addCheckbox( 'allow', __( 'Allow packet auto-submission', 'packeta' ) ) |
| 350 | 280 | ->setRequired( false ) |
| 351 | 281 | ->setDefaultValue( OptionsProvider::PACKET_AUTO_SUBMISSION_ALLOWED_DEFAULT ); |
| @@ -383,9 +313,9 @@ | ||
| 383 | 313 | * |
| 384 | 314 | * @return void |
| 385 | 315 | */ |
| 386 | 316 | public function onAutoSubmissionFormSuccess( Form $form, array $values ): void { |
| 387 | - update_option( OptionNames::PACKETERY_AUTO_SUBMISSION, $values ); | |
| 317 | + update_option( OptionsProvider::OPTION_NAME_PACKETERY_AUTO_SUBMISSION, $values ); | |
| 388 | 318 | |
| 389 | 319 | $this->messageManager->flash_message( __( 'Settings saved.', 'packeta' ), MessageManager::TYPE_SUCCESS, MessageManager::RENDERER_PACKETERY, 'plugin-options' ); |
| 390 | 320 | |
| 391 | 321 | if ( wp_safe_redirect( $this->createLink( self::TAB_AUTO_SUBMISSION ) ) ) { |
| @@ -399,9 +329,9 @@ | ||
| 399 | 329 | * @return Form |
| 400 | 330 | */ |
| 401 | 331 | private function createPacketStatusSyncForm(): Form { |
| 402 | 332 | $form = $this->formFactory->create( 'packetery_packet_status_sync_form' ); |
| 403 | - $settings = $this->optionsProvider->getOptionsByName( OptionNames::PACKETERY_SYNC ); | |
| 333 | + $settings = $this->optionsProvider->getOptionsByName( OptionsProvider::OPTION_NAME_PACKETERY_SYNC ); | |
| 404 | 334 | |
| 405 | 335 | $form->addText( 'max_status_syncing_packets', __( 'Number of orders synced during one cron call', 'packeta' ) ) |
| 406 | 336 | ->setRequired( false ) |
| 407 | 337 | ->addRule( Form::INTEGER ) |
| @@ -424,9 +354,9 @@ | ||
| 424 | 354 | } |
| 425 | 355 | } |
| 426 | 356 | unset( $settings['status_syncing_order_statuses'] ); |
| 427 | 357 | |
| 428 | - $packetStatuses = $this->getStatusSyncingPacketStatusesChoiceData(); | |
| 358 | + $packetStatuses = $this->getPacketStatusesChoiceData(); | |
| 429 | 359 | $packetStatusesContainer = $form->addContainer( 'status_syncing_packet_statuses' ); |
| 430 | 360 | |
| 431 | 361 | foreach ( $packetStatuses as $packetStatusHash => $packetStatusData ) { |
| 432 | 362 | $item = $packetStatusesContainer->addCheckbox( $packetStatusHash, $packetStatusData['label'] ); |
| @@ -445,9 +375,8 @@ | ||
| 445 | 375 | ->toggle( '.order_status_change_content' ); |
| 446 | 376 | |
| 447 | 377 | $orderStatusChangePacketStatuses = $form->addContainer( 'order_status_change_packet_statuses' ); |
| 448 | 378 | $orderStatuses = wc_get_order_statuses(); |
| 449 | - $packetStatuses = $this->getAllPacketStatusesChoiceData(); | |
| 450 | 379 | foreach ( $packetStatuses as $packetStatusHash => $packetStatusData ) { |
| 451 | 380 | $item = $orderStatusChangePacketStatuses->addSelect( $packetStatusHash, $packetStatusData['label'], $orderStatuses ) |
| 452 | 381 | ->setPrompt( __( 'Order status', 'packeta' ) ); |
| 453 | 382 | $targetStatus = $settings['order_status_change_packet_statuses'][ $packetStatusData['key'] ] ?? null; |
| @@ -474,18 +403,19 @@ | ||
| 474 | 403 | * |
| 475 | 404 | * @return void |
| 476 | 405 | */ |
| 477 | 406 | public function onPacketStatusSyncFormSuccess( Form $form, array $values ): void { |
| 407 | + | |
| 478 | 408 | $values['status_syncing_order_statuses'] = $this->getChosenKeys( |
| 479 | 409 | self::getOrderStatusesChoiceData(), |
| 480 | 410 | $values['status_syncing_order_statuses'] |
| 481 | 411 | ); |
| 482 | 412 | $values['status_syncing_packet_statuses'] = $this->getChosenKeys( |
| 483 | - $this->getStatusSyncingPacketStatusesChoiceData(), | |
| 413 | + $this->getPacketStatusesChoiceData(), | |
| 484 | 414 | $values['status_syncing_packet_statuses'] |
| 485 | 415 | ); |
| 486 | 416 | $values['order_status_change_packet_statuses'] = $this->translateStatuses( |
| 487 | - $this->getAllPacketStatusesChoiceData(), | |
| 417 | + $this->getPacketStatusesChoiceData(), | |
| 488 | 418 | $values['order_status_change_packet_statuses'] |
| 489 | 419 | ); |
| 490 | 420 | |
| 491 | 421 | if ( $values['max_status_syncing_packets'] === '' ) { |
| @@ -495,9 +425,9 @@ | ||
| 495 | 425 | if ( $values['max_days_of_packet_status_syncing'] === '' ) { |
| 496 | 426 | unset( $values['max_days_of_packet_status_syncing'] ); |
| 497 | 427 | } |
| 498 | 428 | |
| 499 | - update_option( OptionNames::PACKETERY_SYNC, $values ); | |
| 429 | + update_option( OptionsProvider::OPTION_NAME_PACKETERY_SYNC, $values ); | |
| 500 | 430 | |
| 501 | 431 | $this->messageManager->flash_message( __( 'Settings saved.', 'packeta' ), MessageManager::TYPE_SUCCESS, MessageManager::RENDERER_PACKETERY, 'plugin-options' ); |
| 502 | 432 | |
| 503 | 433 | if ( wp_safe_redirect( $this->createLink( self::TAB_PACKET_STATUS_SYNC ) ) ) { |
| @@ -506,9 +436,9 @@ | ||
| 506 | 436 | } |
| 507 | 437 | |
| 508 | 438 | public function createAdvancedForm(): Form { |
| 509 | 439 | $form = $this->formFactory->create( 'packetery_advanced_form' ); |
| 510 | - $defaults = $this->optionsProvider->getOptionsByName( OptionNames::PACKETERY_ADVANCED ); | |
| 440 | + $defaults = $this->optionsProvider->getOptionsByName( OptionsProvider::OPTION_NAME_PACKETERY_ADVANCED ); | |
| 511 | 441 | |
| 512 | 442 | $form->addCheckbox( 'new_carrier_settings_enabled', __( 'Advanced carrier settings', 'packeta' ) ) |
| 513 | 443 | ->setRequired( false ) |
| 514 | 444 | ->setDefaultValue( OptionsProvider::DEFAULT_VALUE_CARRIER_SETTINGS ); |
| @@ -522,9 +452,9 @@ | ||
| 522 | 452 | return $form; |
| 523 | 453 | } |
| 524 | 454 | |
| 525 | 455 | public function onAdvancedFormSuccess( Form $form, array $values ): void { |
| 526 | - update_option( OptionNames::PACKETERY_ADVANCED, $values ); | |
| 456 | + update_option( OptionsProvider::OPTION_NAME_PACKETERY_ADVANCED, $values ); | |
| 527 | 457 | |
| 528 | 458 | $this->messageManager->flash_message( __( 'Settings saved.', 'packeta' ), MessageManager::TYPE_SUCCESS, MessageManager::RENDERER_PACKETERY, 'plugin-options' ); |
| 529 | 459 | |
| 530 | 460 | if ( wp_safe_redirect( $this->createLink( self::TAB_ADVANCED ) ) ) { |
| @@ -657,18 +587,8 @@ | ||
| 657 | 587 | 'after_transport_methods' => __( 'After transport methods', 'packeta' ), |
| 658 | 588 | ] |
| 659 | 589 | ); |
| 660 | 590 | |
| 661 | - $container->addCheckbox( 'hide_checkout_logo', __( 'Hide Packeta checkout logo', 'packeta' ) ) | |
| 662 | - ->setRequired( false ) | |
| 663 | - ->setDefaultValue( OptionsProvider::HIDE_CHECKOUT_LOGO_DEFAULT ); | |
| 664 | - | |
| 665 | - $container->addCheckbox( 'auto_email_info_insertion', __( 'Automatically insert packet and pickup point information into emails', 'packeta' ) ) | |
| 666 | - ->setRequired( false ) | |
| 667 | - ->setDefaultValue( OptionsProvider::AUTO_EMAIL_INFO_INSERTION_DEFAULT ) | |
| 668 | - ->addCondition( Form::EQUAL, true ) | |
| 669 | - ->toggle( '#packetery-email-hook' ); | |
| 670 | - | |
| 671 | 591 | $container->addSelect( |
| 672 | 592 | 'email_hook', |
| 673 | 593 | __( 'Hook used to view information in email', 'packeta' ), |
| 674 | 594 | [ |
| @@ -694,20 +614,12 @@ | ||
| 694 | 614 | $container->addCheckbox( 'prices_include_tax', __( 'Prices include tax', 'packeta' ) ) |
| 695 | 615 | ->setRequired( false ) |
| 696 | 616 | ->setDefaultValue( OptionsProvider::PRICES_INCLUDE_TAX_DEFAULT ); |
| 697 | 617 | |
| 698 | - $container->addCheckbox( self::FORM_PICKUP_POINT_VALIDATION_ENABLED, __( 'Validate the pickup point using the API before accepting the order', 'packeta' ) ) | |
| 699 | - ->setRequired( false ) | |
| 700 | - ->setDefaultValue( OptionsProvider::PICKUP_POINT_VALIDATION_ENABLED_DEFAULT ); | |
| 701 | - | |
| 702 | - $container->addCheckbox( 'show_consign_password_for_z_box', __( 'Show consignment code', 'packeta' ) ) | |
| 703 | - ->setRequired( false ) | |
| 704 | - ->setDefaultValue( OptionsProvider::SHOW_CONSIGN_PASSWORD_FOR_Z_BOX_DEFAULT ); | |
| 705 | - | |
| 706 | 618 | $form->addSubmit( 'save', __( 'Save changes', 'packeta' ) ); |
| 707 | 619 | |
| 708 | - if ( $this->optionsProvider->has_any( OptionNames::PACKETERY ) ) { | |
| 709 | - $container->setDefaults( $this->optionsProvider->getOptionsByName( OptionNames::PACKETERY ) ); | |
| 620 | + if ( $this->optionsProvider->has_any( OptionsProvider::OPTION_NAME_PACKETERY ) ) { | |
| 621 | + $container->setDefaults( $this->optionsProvider->getOptionsByName( OptionsProvider::OPTION_NAME_PACKETERY ) ); | |
| 710 | 622 | } |
| 711 | 623 | |
| 712 | 624 | return $form; |
| 713 | 625 | } |
| @@ -716,12 +628,9 @@ | ||
| 716 | 628 | * Admin_init callback. |
| 717 | 629 | */ |
| 718 | 630 | public function admin_init(): void { |
| 719 | 631 | add_filter( 'pre_update_option_packetery', [ $this, 'validatePacketeryOptions' ] ); |
| 720 | - | |
| 721 | - // Registered callback is called when the form is submitted. | |
| 722 | 632 | register_setting( self::FORM_FIELDS_CONTAINER, self::FORM_FIELDS_CONTAINER, [ $this, 'sanitizePacketeryOptions' ] ); |
| 723 | - | |
| 724 | 633 | add_settings_section( 'packetery_main', __( 'Main Settings', 'packeta' ), function () {}, self::SLUG ); |
| 725 | 634 | } |
| 726 | 635 | |
| 727 | 636 | /** |
| @@ -745,9 +654,9 @@ | ||
| 745 | 654 | if ( $control->hasErrors() === false ) { |
| 746 | 655 | continue; |
| 747 | 656 | } |
| 748 | 657 | |
| 749 | - add_settings_error( OptionNames::PACKETERY, esc_attr( $control->getName() ), "{$control->getCaption()}: {$control->getError()}" ); | |
| 658 | + add_settings_error( OptionsProvider::OPTION_NAME_PACKETERY, esc_attr( $control->getName() ), "{$control->getCaption()}: {$control->getError()}" ); | |
| 750 | 659 | } |
| 751 | 660 | } |
| 752 | 661 | |
| 753 | 662 | $apiPassword = $packeteryContainer['api_password']; |
| @@ -774,14 +683,8 @@ | ||
| 774 | 683 | * |
| 775 | 684 | * @var Container $packeteryContainer |
| 776 | 685 | */ |
| 777 | 686 | $packeteryContainer = $form[ self::FORM_FIELDS_CONTAINER ]; |
| 778 | - if ( ! isset( $options['auto_email_info_insertion'] ) ) { | |
| 779 | - $options['auto_email_info_insertion'] = false; | |
| 780 | - } | |
| 781 | - if ( ! isset( $options['show_consign_password_for_z_box'] ) ) { | |
| 782 | - $options['show_consign_password_for_z_box'] = false; | |
| 783 | - } | |
| 784 | 687 | $packeteryContainer->setValues( $options ); |
| 785 | 688 | if ( $form->isValid() === false ) { |
| 786 | 689 | foreach ( $packeteryContainer->getControls() as $control ) { |
| 787 | 690 | if ( $control->hasErrors() === false ) { |
| @@ -822,9 +725,9 @@ | ||
| 822 | 725 | if ( $packeteryContainer['free_shipping_shown'] instanceof BaseControl ) { |
| 823 | 726 | $options['free_shipping_shown'] = (int) $packeteryContainer['free_shipping_shown']->getValue(); |
| 824 | 727 | } |
| 825 | 728 | |
| 826 | - $previousOptions = $this->optionsProvider->getOptionsByName( OptionNames::PACKETERY ); | |
| 729 | + $previousOptions = $this->optionsProvider->getOptionsByName( OptionsProvider::OPTION_NAME_PACKETERY ); | |
| 827 | 730 | if ( ! isset( $options['default_weight_enabled'] ) ) { |
| 828 | 731 | if ( isset( $previousOptions['default_weight'] ) ) { |
| 829 | 732 | $options['default_weight'] = $previousOptions['default_weight']; |
| 830 | 733 | } else { |
| @@ -840,12 +743,8 @@ | ||
| 840 | 743 | } |
| 841 | 744 | } |
| 842 | 745 | } |
| 843 | 746 | |
| 844 | - if ( $options['api_key'] === '' ) { | |
| 845 | - $options[ self::FORM_PICKUP_POINT_VALIDATION_ENABLED ] = false; | |
| 846 | - } | |
| 847 | - | |
| 848 | 747 | return $options; |
| 849 | 748 | } |
| 850 | 749 | |
| 851 | 750 | /** |
| @@ -938,26 +837,8 @@ | ||
| 938 | 837 | $advancedForm['save']->isSubmittedBy() |
| 939 | 838 | ) { |
| 940 | 839 | $advancedForm->fireEvents(); |
| 941 | 840 | } |
| 942 | - | |
| 943 | - $bugReportForm = $this->bugReportForm->createForm(); | |
| 944 | - if ( | |
| 945 | - $bugReportForm['submit'] instanceof SubmitButton && | |
| 946 | - $bugReportForm['submit']->isSubmittedBy() && | |
| 947 | - $bugReportForm->isSuccess() | |
| 948 | - ) { | |
| 949 | - $bugReportForm->fireEvents(); | |
| 950 | - } | |
| 951 | - | |
| 952 | - $diagnosticsLoggingForm = $this->diagnosticsLoggingFormFactory->createForm(); | |
| 953 | - if ( | |
| 954 | - $diagnosticsLoggingForm['save'] instanceof SubmitButton && | |
| 955 | - $diagnosticsLoggingForm['save']->isSubmittedBy() && | |
| 956 | - $diagnosticsLoggingForm->isSuccess() | |
| 957 | - ) { | |
| 958 | - $diagnosticsLoggingForm->fireEvents(); | |
| 959 | - } | |
| 960 | 841 | } |
| 961 | 842 | |
| 962 | 843 | /** |
| 963 | 844 | * Renders page. |
| @@ -973,15 +854,8 @@ | ||
| 973 | 854 | } elseif ( $activeTab === self::TAB_ADVANCED ) { |
| 974 | 855 | $latteParams = [ 'form' => $this->createAdvancedForm() ]; |
| 975 | 856 | } elseif ( $activeTab === self::TAB_GENERAL ) { |
| 976 | 857 | $latteParams = [ 'form' => $this->create_form() ]; |
| 977 | - } elseif ( $activeTab === self::TAB_SUPPORT ) { | |
| 978 | - $latteParams = [ | |
| 979 | - 'bugReportFormEnabled' => false, | |
| 980 | - 'bugReportForm' => $this->bugReportForm->createForm(), | |
| 981 | - 'diagnosticsLoggingForm' => $this->diagnosticsLoggingFormFactory->createForm(), | |
| 982 | - 'hasPacketaLog' => is_file( $this->diagnosticsLogger->getPacketaLogPath() ), | |
| 983 | - ]; | |
| 984 | 858 | } |
| 985 | 859 | |
| 986 | 860 | if ( ! extension_loaded( 'soap' ) ) { |
| 987 | 861 | $latteParams['error'] = __( 'This plugin requires an active SOAP library for proper operation. Contact your web hosting administrator.', 'packeta' ); |
| @@ -996,17 +870,8 @@ | ||
| 996 | 870 | ], |
| 997 | 871 | get_admin_url( null, 'admin.php' ) |
| 998 | 872 | ); |
| 999 | 873 | |
| 1000 | - $latteParams['deleteDiagnosticsLogsLink'] = add_query_arg( | |
| 1001 | - [ | |
| 1002 | - 'page' => self::SLUG, | |
| 1003 | - 'action' => DiagnosticsLogger::ACTION_DELETE_PACKETA_LOG, | |
| 1004 | - 'tab' => self::TAB_SUPPORT, | |
| 1005 | - ], | |
| 1006 | - get_admin_url( null, 'admin.php' ) | |
| 1007 | - ); | |
| 1008 | - | |
| 1009 | 874 | $latteParams['activeTab'] = ( $this->httpRequest->getQuery( self::PARAM_TAB ) ?? self::TAB_GENERAL ); |
| 1010 | 875 | $latteParams['generalTabLink'] = $this->createLink(); |
| 1011 | 876 | $latteParams['advancedTabLink'] = $this->createLink( self::TAB_ADVANCED ); |
| 1012 | 877 | $latteParams['supportTabLink'] = $this->createLink( self::TAB_SUPPORT ); |
| @@ -1022,9 +887,9 @@ | ||
| 1022 | 887 | get_admin_url( null, 'admin.php' ) |
| 1023 | 888 | ); |
| 1024 | 889 | |
| 1025 | 890 | $lastExport = null; |
| 1026 | - $lastExportOption = get_option( OptionNames::LAST_SETTINGS_EXPORT ); | |
| 891 | + $lastExportOption = get_option( Exporter::OPTION_LAST_SETTINGS_EXPORT ); | |
| 1027 | 892 | if ( $lastExportOption !== false ) { |
| 1028 | 893 | $date = DateTime::createFromFormat( DATE_ATOM, $lastExportOption ); |
| 1029 | 894 | if ( $date !== false ) { |
| 1030 | 895 | $date->setTimezone( wp_timezone() ); |
| @@ -1041,9 +906,9 @@ | ||
| 1041 | 906 | $latteParams['logoZasilkovna'] = $this->urlBuilder->buildAssetUrl( 'public/images/logo-zasilkovna.svg' ); |
| 1042 | 907 | $latteParams['logoPacketa'] = $this->urlBuilder->buildAssetUrl( 'public/images/logo-packeta.svg' ); |
| 1043 | 908 | $advancedCarrierSettingsDescription = sprintf( |
| 1044 | 909 | // translators: first %s is line break, second one is e-mail address |
| 1045 | - __( 'When this feature is active, Packeta carriers will appear as separate shipping methods under WooCommerce → Settings → Shipping. After enabling or disabling this feature, you need to reconfigure your shipping methods in WooCommerce.%1$sIf you encounter any issues, please contact us at %2$s.', 'packeta' ), | |
| 910 | + __( 'BETA: Once enabled, Packeta carriers will appear as separate shipping methods in WooCommerce - Settings - Shipping. After enabling this feature, you will need to set up shipping methods in WooCommerce again.%1$sThis is an experimental feature. If you experience any issues, please email us at %2$s with a description of the issue.', 'packeta' ), | |
| 1046 | 911 | '<br>', |
| 1047 | 912 | '<a href="mailto:' . $this->supportEmailAddress . '">' . $this->supportEmailAddress . '</a>' |
| 1048 | 913 | ); |
| 1049 | 914 | $latteParams['translations'] = [ |
| @@ -1069,13 +934,8 @@ | ||
| 1069 | 934 | ), |
| 1070 | 935 | 'exportPluginSettings' => __( 'Export the plugin settings', 'packeta' ), |
| 1071 | 936 | 'settingsExportDatetime' => __( 'Date and time of the last export of settings', 'packeta' ), |
| 1072 | 937 | 'settingsNotYetExported' => __( 'The settings have not been exported yet.', 'packeta' ), |
| 1073 | - 'bugReportTitle' => $this->wpAdapter->__( 'Report a bug', 'packeta' ), | |
| 1074 | - 'bugReportDescription' => $this->wpAdapter->__( 'If you encounter any issues with the Packeta plugin, please use this form to report them. Your message will be sent to our technical support team along with system information.', 'packeta' ), | |
| 1075 | - 'bugReportInfo' => $this->wpAdapter->__( 'We will also zip the following files and attach them to the email, if available: WooCommerce Log, Diagnostics Log, Tracy Log, Wordpress Debug Log, WooCommerce System Status Log, Packeta plugin settings export.', 'packeta' ), | |
| 1076 | - 'exportSettingsTitle' => $this->wpAdapter->__( 'Export settings', 'packeta' ), | |
| 1077 | - 'diagnosticsLoggingTitle' => $this->wpAdapter->__( 'Diagnostics logging', 'packeta' ), | |
| 1078 | 938 | 'senderDescription' => sprintf( |
| 1079 | 939 | /* translators: 1: emphasis start 2: emphasis end 3: client section link start 4: client section link end */ |
| 1080 | 940 | esc_html__( 'Fill here %1$ssender label%2$s - you will find it in %3$sclient section%4$s - user information - field \'Indication\'.', 'packeta' ), |
| 1081 | 941 | '<strong>', |
| @@ -1098,21 +958,8 @@ | ||
| 1098 | 958 | 'autoOrderStatusChangeDescription' => __( 'Change order status after data submission to Packeta.', 'packeta' ), |
| 1099 | 959 | 'freeShippingTextDescription' => __( 'If enabled, "FREE" will be displayed after the name of the shipping method, if free shipping is applied.', 'packeta' ), |
| 1100 | 960 | 'orderStatusChangeSettings' => __( 'Order status change settings', 'packeta' ), |
| 1101 | 961 | 'dimensionsLabel' => __( 'Dimensions', 'packeta' ), |
| 1102 | - 'autoEmailInfoInsertionDescription' => __( 'When enabled, the plugin automatically adds packet and pickup point details to emails. Disable this if you prefer to insert them manually using shortcodes.', 'packeta' ), | |
| 1103 | - 'diagnosticsLoggingDescription' => $this->wpAdapter->__( 'If some plugin functionality is not working correctly, you can enable diagnostic logging. After enabling it, please repeat the action that is not working as expected. The log will then record important function calls, passed parameters, and their results. Once you have reproduced the issue, disable diagnostic logging again. This information can help developers troubleshoot the problem. You can find the log in the packeta.log file, which is stored by default in wp-content/plugins/packeta/log.', 'packeta' ), | |
| 1104 | - 'diagnosticsLoggingLink' => $this->wpAdapter->__( 'Delete log', 'packeta' ), | |
| 1105 | - 'bugReportScreenshotsTitle' => $this->wpAdapter->__( 'If possible, please provide screenshots showing the problem. You can do it this way:', 'packeta' ), | |
| 1106 | - 'bugReportScreenshotsFirstStep' => sprintf( | |
| 1107 | - /* translators: 1: ImgBB link start 2: ImgBB link end */ | |
| 1108 | - $this->wpAdapter->__( 'Go to %1$sImgBB%2$s and upload your screenshots.', 'packeta' ), | |
| 1109 | - '<a href="https://imgbb.com/" target="_blank">', | |
| 1110 | - '</a>' | |
| 1111 | - ), | |
| 1112 | - 'bugReportScreenshotsSecondStep' => $this->wpAdapter->__( 'Copy the link(s) generated after uploading', 'packeta' ), | |
| 1113 | - 'bugReportScreenshotsThirdStep' => $this->wpAdapter->__( 'Paste the link(s) into your message.', 'packeta' ), | |
| 1114 | - 'message' => $this->wpAdapter->__( 'Message', 'packeta' ), | |
| 1115 | 962 | ]; |
| 1116 | 963 | |
| 1117 | 964 | $this->latteEngine->render( PACKETERY_PLUGIN_DIR . '/template/options/page.latte', $latteParams ); |
| 1118 | 965 | } |