PluginProbe ʕ •ᴥ•ʔ
FAPI Member / 2.1.18
FAPI Member v2.1.18
2.2.34 2.2.33 2.2.32 trunk 1.9.47 2.1.18 2.2.24 2.2.25 2.2.26 2.2.28 2.2.29 2.2.30 2.2.31
fapi-member / src / Utils / DisplayHelper.php
fapi-member / src / Utils Last commit date
AlertProvider.php 1 year ago ApiClient.php 1 year ago DateTimeHelper.php 1 year ago DateTimes.php 1 year ago DateTimesImmutable.php 1 year ago Debugger.php 1 year ago DisplayHelper.php 1 year ago EmailHelper.php 1 year ago PostTypeHelper.php 1 year ago Random.php 1 year ago SecurityValidator.php 1 year ago ShortcodeSubstitutor.php 1 year ago TemplateProvider.php 1 year ago functions.php 1 year ago
DisplayHelper.php
70 lines
1 <?php declare(strict_types=1);
2
3 namespace FapiMember\Utils;
4
5 final class DisplayHelper
6 {
7 public static function shouldContentBeRendered(
8 string|bool $hasSectionOrLevel,
9 array|string|null $fapiSectionAndLevels,
10 $wpUserId = null,
11 ): bool
12 {
13 if (!in_array($hasSectionOrLevel, array( '1', '0', true, false), true)) {
14 return true;
15 }
16
17 if (!isset($fapiSectionAndLevels) || $fapiSectionAndLevels === null) {
18 return true;
19 }
20
21 if ( is_string( $fapiSectionAndLevels ) ) {
22 $sectionAndLevels = json_decode($fapiSectionAndLevels, true);
23 } elseif (is_array($fapiSectionAndLevels)) {
24 $sectionAndLevels = $fapiSectionAndLevels;
25 } else {
26 return true;
27 }
28
29 if ($sectionAndLevels === [] || $sectionAndLevels === null) {
30 return true;
31 }
32
33 $sectionAndLevels = array_map(
34 static function ( $item ) {
35 return (int) $item;
36 },
37 $sectionAndLevels
38 );
39
40 $hasMemberSectionOrLevel = (bool) $hasSectionOrLevel;
41 $userId = isset( $wpUserId ) && $wpUserId ? $wpUserId : get_current_user_id();
42
43 global $membershipRepository;
44 $memberships = $membershipRepository->getAllByUserId($userId);
45
46 if ($hasMemberSectionOrLevel === true) {
47 foreach ($memberships as $membership) {
48 if (in_array($membership->getLevelId(), $sectionAndLevels, true)) {
49 return true;
50 }
51 }
52
53 return false;
54 }
55
56 if ($memberships === []) {
57 return true;
58 }
59
60 foreach ($memberships as $membership) {
61 if (!in_array($membership->getLevelId(), $sectionAndLevels, true )) {
62 return true;
63 }
64 }
65
66 return false;
67 }
68
69 }
70