PluginProbe
Packeta / 2.0.9
Packeta v2.0.9
2.3.2 2.3.1 trunk 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 All 56 releases
← All changes | src/Packetery/Module/Options/OptionsProvider.php +34 -87 trunk2.0.9 View file →
@@ -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 }