PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.0.4
GiveWP – Donation Plugin and Fundraising Platform v3.0.4
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Framework / PaymentGateways / DonationSummary.php
give / src / Framework / PaymentGateways Last commit date
Actions 2 years ago CommandHandlers 2 years ago Commands 2 years ago Contracts 2 years ago Controllers 2 years ago DataTransferObjects 3 years ago Exceptions 4 years ago Log 4 years ago Routes 3 years ago Traits 2 years ago DonationSummary.php 3 years ago PaymentGateway.php 2 years ago PaymentGatewayRegister.php 2 years ago SubscriptionModule.php 4 years ago
DonationSummary.php
135 lines
1 <?php
2
3 namespace Give\Framework\PaymentGateways;
4
5 use Give\Donations\Models\Donation;
6
7 /**
8 * @since 2.19.0
9 */
10 class DonationSummary
11 {
12 /** @var int */
13 protected $length = 255;
14
15 /** @var Donation */
16 protected $donation;
17
18 /**
19 * @since 2.19.0
20 */
21 public function __construct(Donation $donation)
22 {
23 $this->donation = $donation;
24 }
25
26 /**
27 * @since 2.19.0
28 *
29 * @param int $length
30 */
31 public function setLength(int $length)
32 {
33 $this->length = $length;
34 }
35
36 /**
37 * @since 2.19.0
38 *
39 * @return string
40 */
41 public function getSummaryWithDonor(): string
42 {
43 return $this->trim(
44 implode(' - ', [
45 $this->getSummary(),
46 $this->getDonorLabel(),
47 ])
48 );
49 }
50
51 /**
52 * @since 2.19.0
53 *
54 * @return string
55 */
56 public function getSummary(): string
57 {
58 return $this->trimAndFilter(
59 implode(
60 ': ',
61 array_filter([
62 $this->getLabel(),
63 $this->getPriceLabel(),
64 ])
65 )
66 );
67 }
68
69 /**
70 * @since 2.19.0
71 *
72 * @return string
73 */
74 protected function getLabel(): string
75 {
76 $formId = give_get_payment_form_id($this->donation->id);
77 $formTitle = get_the_title($formId);
78 return $formTitle ?: sprintf(__('Donation Form ID: %d', 'give'), $formId);
79 }
80
81 /**
82 * @since 2.19.0
83 * @return string
84 */
85 protected function getPriceLabel(): string
86 {
87 $priceId = $this->donation->levelId;
88
89 return is_numeric($priceId)
90 ? give_get_price_option_name($this->donation->formId, $this->donation->levelId)
91 : '';
92 }
93
94 /**
95 * @since 2.19.0
96 */
97 protected function getDonorLabel(): string
98 {
99 return sprintf(
100 '%s %s (%s)',
101 $this->donation->firstName,
102 $this->donation->lastName,
103 $this->donation->email
104 );
105 }
106
107 /**
108 * @since 2.19.0
109 *
110 * @param string $text
111 *
112 * @return string
113 */
114 protected function trimAndFilter(string $text): string
115 {
116 /**
117 * @since 2.25.0 Re-use trim method for text.
118 * @since 1.8.12
119 */
120 return apply_filters('give_payment_gateway_donation_summary', $this->trim($text));
121 }
122
123 /**
124 * @since 2.25.0
125 *
126 * @param string $text
127 *
128 * @return string
129 */
130 protected function trim(string $text): string
131 {
132 return substr($text, 0, $this->length);
133 }
134 }
135