PluginProbe
Lasso Lite – Affiliate Link Manager & Product Displays / 114
Lasso Lite – Affiliate Link Manager & Product Displays v114
158 157 155 156 154 153 152 151 150 149 148 trunk 0.9.9 104 105 106 107 108 109 110 111 112 113 114 115 All 57 releases
simple-urls / classes / class-lasso-url.php

class-lasso-url.php in Lasso Lite – Affiliate Link Manager & Product Displays 114, at classes/class-lasso-url.php

206 lines 3.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Declare Class Lasso_URL
4 *
5 * @package LassoLite
6 */
7
8 namespace LassoLite\Classes;
9
10 use LassoLite\Classes\Affiliate_Link as Lasso_Affiliate_Link;
11
12 if ( ! defined( 'ABSPATH' ) ) {
13 exit; // Exit if accessed directly.
14 }
15
16 /**
17 * Class Lasso_URL
18 *
19 * @package Lasso\Libraries
20 */
21 class Lasso_URL {
22 /**
23 * Lasso id
24 *
25 * @var $lasso_id
26 */
27 public $lasso_id;
28
29 /**
30 * Name
31 *
32 * @var $name
33 */
34 public $name;
35
36 /**
37 * Primary button text
38 *
39 * @var $primary_button_text
40 */
41 public $primary_button_text;
42
43 /**
44 * Primary link
45 *
46 * @var $primary_link
47 */
48 public $primary_link;
49
50 /**
51 * Image src
52 *
53 * @var $image_src
54 */
55 public $image_src;
56
57 /**
58 * Target url
59 *
60 * @var $target_url
61 */
62 public $target_url;
63
64 /**
65 * Price
66 *
67 * @var $price
68 */
69 public $price;
70
71 /**
72 * Html attributes
73 *
74 * @var $html_attribute
75 */
76 public $html_attribute;
77
78 /**
79 * Public link
80 *
81 * @var $public_link
82 */
83 public $public_link;
84
85 /**
86 * Description html text
87 *
88 * @var $description
89 */
90 public $description;
91
92 /**
93 * Badge Text
94 *
95 * @var $badge_text
96 */
97 public $badge_text;
98
99 /**
100 * Lasso_URL constructor.
101 *
102 * @param int|object $lasso_url Lasso URL object or Lasso post id.
103 */
104 public function __construct( $lasso_url ) {
105 $lasso_url = is_object( $lasso_url ) ? $lasso_url : Lasso_Affiliate_Link::get_lasso_url( $lasso_url );
106
107 $this->lasso_id = $lasso_url->id;
108 $this->name = $lasso_url->name;
109 $this->primary_button_text = $lasso_url->display->primary_button_text;
110 $this->primary_link = $lasso_url->target_url;
111 $this->image_src = $lasso_url->image_src;
112 $this->target_url = $lasso_url->target_url;
113 $this->price = $lasso_url->price;
114 $this->html_attribute = $lasso_url->html_attribute;
115 $this->public_link = $lasso_url->public_link;
116 $this->description = $lasso_url->description;
117 $this->badge_text = $lasso_url->display->badge_text;
118 }
119
120 /**
121 * Get link detail
122 *
123 * @return string
124 */
125 public function get_link_detail() {
126 return 'edit.php?post_type=surl&page=surl-url-details&post_id=' . $this->lasso_id;
127 }
128
129 /**
130 * Get Lasso_URL
131 *
132 * @param int $lasso_id Lasso ID.
133 *
134 * @return Lasso_URL
135 */
136 public static function get_by_lasso_id( $lasso_id ) {
137 return new self( $lasso_id );
138 }
139
140 /**
141 * Get price.
142 *
143 * @return string
144 */
145 public function get_price() {
146 return ! empty( $this->price ) ? $this->price : 'N/A';
147 }
148
149 /**
150 * Get description.
151 *
152 * @return string
153 */
154 public function get_description() {
155 return $this->description;
156 }
157
158 /**
159 * Get attributes
160 *
161 * @return array
162 */
163 private function get_attrs() {
164 $attrs = array(
165 'target' => $this->html_attribute->target,
166 'href' => $this->public_link,
167 'title' => $this->name,
168 );
169 return $attrs;
170 }
171
172 /**
173 * Render attributes.
174 *
175 * @param string $url Custom Url.
176 * @return string
177 */
178 public function render_attributes( $url = null ) {
179 $attrs = $this->get_attrs();
180
181 if ( ! empty( $url ) ) {
182 $attrs['href'] = $url;
183 }
184
185 $attrs_str = self::generate_attrs( $attrs );
186 $attrs_str .= $this->html_attribute->rel;
187
188 return $attrs_str;
189 }
190
191 /**
192 * Generate attributes html
193 *
194 * @param array $attrs An attributes array.
195 *
196 * @return string
197 */
198 public static function generate_attrs( $attrs ) {
199 $attrs_str = '';
200 foreach ( $attrs as $key => $attr ) {
201 $attrs_str .= $key . '="' . $attr . '" ';
202 }
203 return $attrs_str;
204 }
205 }
206