diff --git a/inc/functions/currency.php b/inc/functions/currency.php index 72dc7c4e9..fc3ab0e75 100644 --- a/inc/functions/currency.php +++ b/inc/functions/currency.php @@ -210,6 +210,7 @@ function wu_get_currency_symbol($currency = '') { break; case 'BYN': $currency_symbol = 'Br'; + break; case 'CHF': $currency_symbol = 'CHF'; break; diff --git a/inc/functions/discount-code.php b/inc/functions/discount-code.php index 0ce1ef5d6..c91c0c65f 100644 --- a/inc/functions/discount-code.php +++ b/inc/functions/discount-code.php @@ -63,6 +63,10 @@ function wu_get_discount_codes($query = []) { */ function wu_get_discounted_price($base_price, $amount, $type, $format = true) { + // Default to the base price so an unknown discount type fails safe to + // "no discount applied" instead of an undefined variable. + $discounted_price = $base_price; + if ('percentage' === $type) { $discounted_price = $base_price - ($base_price * ($amount / 100)); } elseif ('absolute' === $type) { diff --git a/inc/installers/class-migrator.php b/inc/installers/class-migrator.php index 501dff720..6aea44556 100644 --- a/inc/installers/class-migrator.php +++ b/inc/installers/class-migrator.php @@ -1871,7 +1871,7 @@ protected function _install_transactions() { 'parent' => 0, 'line_items' => $line_items, 'status' => wu_get_isset($map_status, $transaction->type, Payment_Status::COMPLETED), - 'customer_id' => $membership ? $customer->get_id() : false, + 'customer_id' => ($membership && $customer) ? $customer->get_id() : false, 'membership_id' => $membership ? $membership->get_id() : false, 'product_id' => $membership ? $membership->get_plan_id() : false, 'currency' => $membership ? $membership->get_currency() : false, diff --git a/inc/integrations/host-providers/class-cloudflare-host-provider.php b/inc/integrations/host-providers/class-cloudflare-host-provider.php index acf404baa..9b7207c95 100644 --- a/inc/integrations/host-providers/class-cloudflare-host-provider.php +++ b/inc/integrations/host-providers/class-cloudflare-host-provider.php @@ -96,8 +96,10 @@ public function add_cloudflare_dns_entries($dns_records, $domain) { ] ); - foreach ($cloudflare_zones->result as $zone) { - $zone_ids[] = $zone->id; + if ( ! is_wp_error($cloudflare_zones) && ! empty($cloudflare_zones->result) && is_iterable($cloudflare_zones->result) ) { + foreach ($cloudflare_zones->result as $zone) { + $zone_ids[] = $zone->id; + } } foreach ($zone_ids as $zone_id) { diff --git a/inc/integrations/host-providers/class-dns-record.php b/inc/integrations/host-providers/class-dns-record.php index 74fafd971..d45327d1f 100644 --- a/inc/integrations/host-providers/class-dns-record.php +++ b/inc/integrations/host-providers/class-dns-record.php @@ -505,7 +505,7 @@ public static function from_provider(array $data, string $provider): self { 'id' => $data['id'] ?? ($data['type'] . '-' . ($data['name'] ?? '@')), 'type' => $data['type'] ?? 'A', 'name' => $data['name'] ?? '@', - 'content' => $data['value'] ?? '', + 'content' => $data['content'] ?? $data['value'] ?? '', 'ttl' => (int) ($data['ttl'] ?? 3600), 'priority' => isset($data['priority']) ? (int) $data['priority'] : null, 'proxied' => false, diff --git a/inc/models/class-membership.php b/inc/models/class-membership.php index e4e3da24f..dcc6eaf2a 100644 --- a/inc/models/class-membership.php +++ b/inc/models/class-membership.php @@ -1106,6 +1106,10 @@ public function get_normalized_amount() { $duration = $this->get_duration(); + if ( ! $duration ) { + return $amount; + } + $normalized_duration_unit = wu_convert_duration_unit_to_month($this->get_duration_unit()); return $amount / $duration * $normalized_duration_unit; diff --git a/inc/models/class-site.php b/inc/models/class-site.php index 49643e5ca..d968eafb2 100644 --- a/inc/models/class-site.php +++ b/inc/models/class-site.php @@ -2378,6 +2378,10 @@ function ($item) { $pending_site = maybe_unserialize($item); + if ( ! $pending_site instanceof self ) { + return null; + } + $pending_site->set_type('pending'); return $pending_site; @@ -2385,7 +2389,7 @@ function ($item) { $results ); - return $results; + return array_values(array_filter($results)); } $query = $query_args; diff --git a/inc/sso/class-magic-link.php b/inc/sso/class-magic-link.php index 413413306..748618902 100644 --- a/inc/sso/class-magic-link.php +++ b/inc/sso/class-magic-link.php @@ -125,6 +125,10 @@ public function generate_magic_link($user_id, $site_id, $redirect_to = '') { $site = wu_get_site($site_id); + if ( ! $site ) { + return false; + } + // Build the magic link URL. $site_url = $site->get_active_site_url();