PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 4.17.1
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v4.17.1
4.17.1 4.17.0 4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / third-party / vendor / nesbot / carbon / sponsors.php
wp-user-avatar / third-party / vendor / nesbot / carbon Last commit date
bin 2 months ago lazy 2 months ago src 2 months ago extension.neon 2 months ago sponsors.php 2 months ago
sponsors.php
77 lines
1 <?php
2
3 namespace ProfilePressVendor;
4
5 /**
6 * This file is part of the Carbon package.
7 *
8 * (c) Brian Nesbitt <brian@nesbot.com>
9 *
10 * For the full copyright and license information, please view the LICENSE
11 * file that was distributed with this source code.
12 */
13 use ProfilePressVendor\Carbon\CarbonImmutable;
14 require_once __DIR__ . '/vendor/autoload.php';
15 function getMaxHistoryMonthsByAmount($amount): int
16 {
17 if ($amount >= 50) {
18 return 6;
19 }
20 if ($amount >= 20) {
21 return 4;
22 }
23 return 2;
24 }
25 function getHtmlAttribute($rawValue): string
26 {
27 return \str_replace(['', "\r"], '', \trim(\htmlspecialchars((string) $rawValue), "  \n\r\t\v\x00"));
28 }
29 function getOpenCollectiveSponsors(): string
30 {
31 $customSponsorImages = [];
32 $members = \json_decode(\file_get_contents('https://opencollective.com/carbon/members/all.json'), \true);
33 $list = \array_filter($members, static function ($member): bool {
34 return ($member['lastTransactionAmount'] > 3 || $member['isActive']) && $member['role'] === 'BACKER' && $member['type'] !== 'USER' && ($member['totalAmountDonated'] > 100 || $member['lastTransactionAt'] > CarbonImmutable::now()->subMonthsNoOverflow(getMaxHistoryMonthsByAmount($member['lastTransactionAmount']))->format('Y-m-d h:i') || $member['isActive'] && $member['lastTransactionAmount'] >= 30);
35 });
36 $list = \array_map(static function (array $member): array {
37 $createdAt = CarbonImmutable::parse($member['createdAt']);
38 $lastTransactionAt = CarbonImmutable::parse($member['lastTransactionAt']);
39 if ($createdAt->format('d H:i:s.u') > $lastTransactionAt->format('d H:i:s.u')) {
40 $createdAt = $createdAt->setDay($lastTransactionAt->day)->modify($lastTransactionAt->format('H:i:s.u'));
41 }
42 $monthlyContribution = (float) ($member['totalAmountDonated'] / \ceil($createdAt->floatDiffInMonths()));
43 if ($lastTransactionAt->isAfter('last month') && $member['lastTransactionAmount'] > $monthlyContribution) {
44 $monthlyContribution = (float) $member['lastTransactionAmount'];
45 }
46 $yearlyContribution = (float) ($member['totalAmountDonated'] / \max(1, $createdAt->floatDiffInYears()));
47 $status = null;
48 if ($monthlyContribution > 29) {
49 $status = 'sponsor';
50 } elseif ($monthlyContribution > 4.5 || $yearlyContribution > 29) {
51 $status = 'backer';
52 } elseif ($member['totalAmountDonated'] > 0) {
53 $status = 'helper';
54 }
55 return \array_merge($member, ['star' => $monthlyContribution > 98 || $yearlyContribution > 500, 'status' => $status, 'monthlyContribution' => $monthlyContribution, 'yearlyContribution' => $yearlyContribution]);
56 }, $list);
57 \usort($list, static function (array $a, array $b): int {
58 return $b['monthlyContribution'] <=> $a['monthlyContribution'] ?: $b['totalAmountDonated'] <=> $a['totalAmountDonated'];
59 });
60 return \implode('', \array_map(static function (array $member) use ($customSponsorImages): string {
61 $href = \htmlspecialchars($member['website'] ?? $member['profile']);
62 $src = $customSponsorImages[$member['MemberId'] ?? ''] ?? $member['image'] ?? \strtr($member['profile'], ['https://opencollective.com/' => 'https://images.opencollective.com/']) . '/avatar/256.png';
63 [$x, $y] = @\getimagesize($src) ?: [0, 0];
64 $validImage = $x && $y;
65 $src = $validImage ? \htmlspecialchars($src) : 'https://opencollective.com/static/images/default-guest-logo.svg';
66 $height = $member['status'] === 'sponsor' ? 64 : 42;
67 $width = \min($height * 2, $validImage ? \round($x * $height / $y) : $height);
68 $href .= (\strpos($href, '?') === \false ? '?' : '&amp;') . 'utm_source=opencollective&amp;utm_medium=github&amp;utm_campaign=Carbon';
69 $title = getHtmlAttribute($member['description'] ?? null ?: $member['name']);
70 $alt = getHtmlAttribute($member['name']);
71 return "\n" . '<a title="' . $title . '" href="' . $href . '" target="_blank">' . '<img alt="' . $alt . '" src="' . $src . '" width="' . $width . '" height="' . $height . '">' . '</a>';
72 }, $list)) . "\n";
73 }
74 \file_put_contents('readme.md', \preg_replace_callback('/(<!-- <open-collective-sponsors> -->)[\s\S]+(<!-- <\/open-collective-sponsors> -->)/', static function (array $match): string {
75 return $match[1] . getOpenCollectiveSponsors() . $match[2];
76 }, \file_get_contents('readme.md')));
77