| @@ -9,10 +9,10 @@ | ||
| 9 | 9 | |
| 10 | 10 | namespace Packetery\Module\Options; |
| 11 | 11 | |
| 12 | 12 | use Packetery\Core\Entity\PacketStatus; |
| 13 | -use Packetery\Module\Framework\WpAdapter; | |
| 14 | 13 | use Packetery\Module\ModuleHelper; |
| 14 | +use Packetery\Module\Order\PacketSynchronizer; | |
| 15 | 15 | |
| 16 | 16 | /** |
| 17 | 17 | * Class OptionsProvider |
| 18 | 18 | * |
| @@ -19,11 +19,16 @@ | ||
| 19 | 19 | * @package Packetery |
| 20 | 20 | */ |
| 21 | 21 | class OptionsProvider { |
| 22 | 22 | |
| 23 | + public const OPTION_NAME_PACKETERY = 'packetery'; | |
| 24 | + public const OPTION_NAME_PACKETERY_SYNC = 'packetery_sync'; | |
| 25 | + public const OPTION_NAME_PACKETERY_AUTO_SUBMISSION = 'packetery_auto_submission'; | |
| 26 | + public const OPTION_NAME_PACKETERY_ADVANCED = 'packetery_advanced'; | |
| 27 | + | |
| 23 | 28 | public const DEFAULT_VALUE_PACKETA_LABEL_FORMAT = 'A6 on A4'; |
| 24 | 29 | public const DEFAULT_VALUE_CARRIER_LABEL_FORMAT = self::DEFAULT_VALUE_PACKETA_LABEL_FORMAT; |
| 25 | - public const DEFAULT_VALUE_CARRIER_SETTINGS = true; | |
| 30 | + public const DEFAULT_VALUE_CARRIER_SETTINGS = false; | |
| 26 | 31 | public const MAX_STATUS_SYNCING_PACKETS_DEFAULT = 100; |
| 27 | 32 | public const MAX_DAYS_OF_PACKET_STATUS_SYNCING_DEFAULT = 14; |
| 28 | 33 | public const FORCE_PACKET_CANCEL_DEFAULT = true; |
| 29 | 34 | public const PACKET_AUTO_SUBMISSION_ALLOWED_DEFAULT = false; |
| @@ -32,12 +37,8 @@ | ||
| 32 | 37 | public const EMAIL_HOOK_DEFAULT = 'woocommerce_email_footer'; |
| 33 | 38 | public const AUTO_ORDER_STATUS = 'auto_order_status'; |
| 34 | 39 | public const DISPLAY_FREE_SHIPPING_IN_CHECKOUT_DEFAULT = true; |
| 35 | 40 | public const PRICES_INCLUDE_TAX_DEFAULT = false; |
| 36 | - public const HIDE_CHECKOUT_LOGO_DEFAULT = false; | |
| 37 | - public const AUTO_EMAIL_INFO_INSERTION_DEFAULT = true; | |
| 38 | - public const PICKUP_POINT_VALIDATION_ENABLED_DEFAULT = false; | |
| 39 | - public const SHOW_CONSIGN_PASSWORD_FOR_Z_BOX_DEFAULT = false; | |
| 40 | 41 | |
| 41 | 42 | public const AUTOMATIC_CHECKOUT_DETECTION = 'automatic_checkout_detection'; |
| 42 | 43 | public const BLOCK_CHECKOUT_DETECTION = 'block_checkout_detection'; |
| 43 | 44 | public const CLASSIC_CHECKOUT_DETECTION = 'classic_checkout_detection'; |
| @@ -71,25 +72,28 @@ | ||
| 71 | 72 | * @var array<string, mixed> |
| 72 | 73 | */ |
| 73 | 74 | private $advancedData; |
| 74 | 75 | |
| 75 | - public function __construct( WpAdapter $wpAdapter ) { | |
| 76 | - $data = $wpAdapter->getOption( OptionNames::PACKETERY ); | |
| 76 | + /** | |
| 77 | + * OptionsProvider constructor. | |
| 78 | + */ | |
| 79 | + public function __construct() { | |
| 80 | + $data = get_option( self::OPTION_NAME_PACKETERY ); | |
| 77 | 81 | if ( $data === false || $data === null ) { |
| 78 | 82 | $data = array(); |
| 79 | 83 | } |
| 80 | 84 | |
| 81 | - $syncData = $wpAdapter->getOption( OptionNames::PACKETERY_SYNC ); | |
| 85 | + $syncData = get_option( self::OPTION_NAME_PACKETERY_SYNC ); | |
| 82 | 86 | if ( $syncData === false || $syncData === null ) { |
| 83 | 87 | $syncData = []; |
| 84 | 88 | } |
| 85 | 89 | |
| 86 | - $autoSubmissionData = $wpAdapter->getOption( OptionNames::PACKETERY_AUTO_SUBMISSION ); | |
| 90 | + $autoSubmissionData = get_option( self::OPTION_NAME_PACKETERY_AUTO_SUBMISSION ); | |
| 87 | 91 | if ( $autoSubmissionData === false || $autoSubmissionData === null ) { |
| 88 | 92 | $autoSubmissionData = []; |
| 89 | 93 | } |
| 90 | 94 | |
| 91 | - $advancedData = $wpAdapter->getOption( OptionNames::PACKETERY_ADVANCED ); | |
| 95 | + $advancedData = get_option( self::OPTION_NAME_PACKETERY_ADVANCED ); | |
| 92 | 96 | if ( $advancedData === false || $advancedData === null ) { |
| 93 | 97 | $advancedData = []; |
| 94 | 98 | } |
| 95 | 99 | |
| @@ -122,12 +126,12 @@ | ||
| 122 | 126 | * @return array<string, array> All plugin options data by given $optionName. |
| 123 | 127 | */ |
| 124 | 128 | public function getAllOptions(): array { |
| 125 | 129 | return [ |
| 126 | - OptionNames::PACKETERY => $this->data, | |
| 127 | - OptionNames::PACKETERY_SYNC => $this->syncData, | |
| 128 | - OptionNames::PACKETERY_AUTO_SUBMISSION => $this->autoSubmissionData, | |
| 129 | - OptionNames::PACKETERY_ADVANCED => $this->advancedData, | |
| 130 | + self::OPTION_NAME_PACKETERY => $this->data, | |
| 131 | + self::OPTION_NAME_PACKETERY_SYNC => $this->syncData, | |
| 132 | + self::OPTION_NAME_PACKETERY_AUTO_SUBMISSION => $this->autoSubmissionData, | |
| 133 | + self::OPTION_NAME_PACKETERY_ADVANCED => $this->advancedData, | |
| 130 | 134 | ]; |
| 131 | 135 | } |
| 132 | 136 | |
| 133 | 137 | /** |
| @@ -422,26 +426,24 @@ | ||
| 422 | 426 | |
| 423 | 427 | /** |
| 424 | 428 | * Status syncing packet statuses. |
| 425 | 429 | * |
| 426 | - * @param PacketStatus[] $expectedPacketStatuses Expected packet statuses. | |
| 427 | - * | |
| 428 | - * @return string[] | |
| 430 | + * @return array | |
| 429 | 431 | */ |
| 430 | - public function getStatusSyncingPacketStatuses( array $expectedPacketStatuses ): array { | |
| 431 | - $packetStatusNames = $this->syncData['status_syncing_packet_statuses'] ?? null; | |
| 432 | - $expectedPacketStatusNames = array_map( | |
| 433 | - static function ( PacketStatus $status ): string { | |
| 434 | - return $status->getName(); | |
| 435 | - }, | |
| 436 | - $expectedPacketStatuses | |
| 437 | - ); | |
| 438 | - | |
| 439 | - if ( is_array( $packetStatusNames ) ) { | |
| 440 | - return array_intersect( $packetStatusNames, $expectedPacketStatusNames ); | |
| 432 | + public function getStatusSyncingPacketStatuses(): array { | |
| 433 | + $value = ( $this->syncData['status_syncing_packet_statuses'] ?? null ); | |
| 434 | + if ( is_array( $value ) ) { | |
| 435 | + return $value; | |
| 441 | 436 | } |
| 442 | 437 | |
| 443 | - return $expectedPacketStatusNames; | |
| 438 | + return array_keys( | |
| 439 | + array_filter( | |
| 440 | + PacketSynchronizer::getPacketStatuses(), | |
| 441 | + static function ( PacketStatus $packetStatus ): bool { | |
| 442 | + return $packetStatus->hasDefaultSynchronization() === true; | |
| 443 | + } | |
| 444 | + ) | |
| 445 | + ); | |
| 444 | 446 | } |
| 445 | 447 | |
| 446 | 448 | /** |
| 447 | 449 | * Transform shipping address to contain pickup point address? |
| @@ -479,30 +481,8 @@ | ||
| 479 | 481 | |
| 480 | 482 | return self::PRICES_INCLUDE_TAX_DEFAULT; |
| 481 | 483 | } |
| 482 | 484 | |
| 483 | - public function isCheckoutLogoHidden(): bool { | |
| 484 | - $hideCheckoutLogo = $this->get( 'hide_checkout_logo' ); | |
| 485 | - if ( $hideCheckoutLogo !== null ) { | |
| 486 | - return (bool) $hideCheckoutLogo; | |
| 487 | - } | |
| 488 | - | |
| 489 | - return self::HIDE_CHECKOUT_LOGO_DEFAULT; | |
| 490 | - } | |
| 491 | - | |
| 492 | - public function isAutoEmailInfoInsertionEnabled(): bool { | |
| 493 | - $autoEmailInfoInjection = $this->get( 'auto_email_info_insertion' ); | |
| 494 | - if ( $autoEmailInfoInjection !== null ) { | |
| 495 | - return (bool) $autoEmailInfoInjection; | |
| 496 | - } | |
| 497 | - | |
| 498 | - return self::AUTO_EMAIL_INFO_INSERTION_DEFAULT; | |
| 499 | - } | |
| 500 | - | |
| 501 | - public function isCheckoutLogoShown(): bool { | |
| 502 | - return ! $this->isCheckoutLogoHidden(); | |
| 503 | - } | |
| 504 | - | |
| 505 | 485 | /** |
| 506 | 486 | * Tells if packet cancellation should be forced. |
| 507 | 487 | * |
| 508 | 488 | * @return bool |
| @@ -534,11 +514,8 @@ | ||
| 534 | 514 | $mapping = $this->getPacketAutoSubmissionPaymentMethodEventsMapping(); |
| 535 | 515 | $result = []; |
| 536 | 516 | |
| 537 | 517 | foreach ( $mapping as $gatewayMapping ) { |
| 538 | - if ( $gatewayMapping['event'] === null ) { | |
| 539 | - continue; | |
| 540 | - } | |
| 541 | 518 | $result[ $gatewayMapping['event'] ] = $gatewayMapping['event']; |
| 542 | 519 | } |
| 543 | 520 | |
| 544 | 521 | return $result; |
| @@ -700,20 +677,11 @@ | ||
| 700 | 677 | if ( $isEnabled !== null ) { |
| 701 | 678 | return (bool) $isEnabled; |
| 702 | 679 | } |
| 703 | 680 | |
| 704 | - return self::DEFAULT_VALUE_CARRIER_SETTINGS; | |
| 681 | + return false; | |
| 705 | 682 | } |
| 706 | 683 | |
| 707 | - public function isWcCarrierConfigEnabledNullable(): ?bool { | |
| 708 | - $isEnabled = $this->advancedData['new_carrier_settings_enabled'] ?? null; | |
| 709 | - if ( $isEnabled !== null ) { | |
| 710 | - return (bool) $isEnabled; | |
| 711 | - } | |
| 712 | - | |
| 713 | - return null; | |
| 714 | - } | |
| 715 | - | |
| 716 | 684 | /** |
| 717 | 685 | * Tells auto order status, if it is valid, otherwise empty string. |
| 718 | 686 | * |
| 719 | 687 | * @param string $packetStatus Packet status. |
| @@ -756,13 +724,10 @@ | ||
| 756 | 724 | * @return string |
| 757 | 725 | */ |
| 758 | 726 | public function getEmailHook(): string { |
| 759 | 727 | $emailHook = $this->get( 'email_hook' ); |
| 760 | - if ( $emailHook === null || $emailHook === '' ) { | |
| 761 | - return self::EMAIL_HOOK_DEFAULT; | |
| 762 | - } | |
| 763 | 728 | |
| 764 | - return $emailHook; | |
| 729 | + return $emailHook ?? self::EMAIL_HOOK_DEFAULT; | |
| 765 | 730 | } |
| 766 | 731 | |
| 767 | 732 | /** |
| 768 | 733 | * Performs replacements needed by Nette form to pass validation, see https://github.com/dg/nette-component-model/blob/master/src/ComponentModel/Container.php#L50 . |
| @@ -773,24 +738,6 @@ | ||
| 773 | 738 | * @return string |
| 774 | 739 | */ |
| 775 | 740 | public function sanitizePaymentGatewayId( string $id ): string { |
| 776 | 741 | return preg_replace( '/\W/', '_', $id ); |
| 777 | - } | |
| 778 | - | |
| 779 | - public function isPickupPointValidationEnabled(): bool { | |
| 780 | - $isEnabled = $this->get( Page::FORM_PICKUP_POINT_VALIDATION_ENABLED ); | |
| 781 | - if ( $isEnabled === null ) { | |
| 782 | - return self::PICKUP_POINT_VALIDATION_ENABLED_DEFAULT; | |
| 783 | - } | |
| 784 | - | |
| 785 | - return (bool) $isEnabled; | |
| 786 | - } | |
| 787 | - | |
| 788 | - public function isShowConsignPasswordForZBoxEnabled(): bool { | |
| 789 | - $value = $this->get( 'show_consign_password_for_z_box' ); | |
| 790 | - if ( $value !== null ) { | |
| 791 | - return (bool) $value; | |
| 792 | - } | |
| 793 | - | |
| 794 | - return self::SHOW_CONSIGN_PASSWORD_FOR_Z_BOX_DEFAULT; | |
| 795 | 742 | } |
| 796 | 743 | } |