zZzzZ.
home2
/
zrzvbdry
/
wiredsave.com
/
wp-content
/
plugins
/
pretty-link
/
app
/
helpers
New Folder
Editing: PrliStripeHelper.php
Save
Cancel
<?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } class PrliStripeHelper { public static function render_line_item(array $line_item) { $price = $line_item['price']; ob_start(); ?> <div class="prli-stripe-line-item-box" data-line-item="<?php echo esc_attr(wp_json_encode($line_item)); ?>"> <div class="prli-stripe-price-image"> <?php if(isset($price['product']['images'][0])) : ?> <div class="prli-stripe-price-image-url" style="background-image: url('<?php echo esc_url_raw($price['product']['images'][0]); ?>');"></div> <?php else : ?> <div class="prli-stripe-price-image-default"> <svg aria-hidden="true" height="16" width="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M13.788 3.119a1.04 1.04 0 0 1-.31.283L8.5 6.362a.97.97 0 0 1-.998 0l-4.98-2.96a1.04 1.04 0 0 1-.309-.283L6.99.279a1.97 1.97 0 0 1 2.02 0zm1.194 1.647c.012.09.018.182.018.274v5.92c0 .743-.385 1.43-1.01 1.802l-4.98 2.96a1.97 1.97 0 0 1-2.02 0l-4.98-2.96A2.092 2.092 0 0 1 1 10.96V5.04c0-.092.006-.184.018-.274.147.133.308.252.481.355l4.98 2.96a2.97 2.97 0 0 0 3.042 0l4.98-2.96c.173-.103.334-.222.481-.355z" fill-rule="evenodd"></path></svg> </div> <?php endif; ?> </div> <div class="prli-stripe-product-name-price"> <div class="prli-stripe-product-name"><?php echo esc_html($price['product']['name']); ?></div> <div class="prli-stripe-product-price"><?php echo esc_html(self::format_price($price)); ?></div> </div> <div class="prli-stripe-line-item-x"> <svg aria-hidden="true" height="12" width="12" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="m8 6.585 4.593-4.592a1 1 0 0 1 1.415 1.416L9.417 8l4.591 4.591a1 1 0 0 1-1.415 1.416L8 9.415l-4.592 4.592a1 1 0 0 1-1.416-1.416L6.584 8l-4.59-4.591a1 1 0 1 1 1.415-1.416z" fill-rule="evenodd"></path></svg> </div> </div> <?php return ob_get_clean(); } public static function format_price($price) { $interval = ''; if($price['recurring']) { $interval = $price['recurring']['interval']; if((int) $price['recurring']['interval_count'] !== 1) { $interval = sprintf('%d %ss', $price['recurring']['interval_count'], $interval); } $interval = ' / ' . $interval; } return sprintf( '%s %s%s', strtoupper($price['currency']), self::format_unit_amount($price['unit_amount'], $price['currency']), $interval ); } public static function format_unit_amount($amount, $currency) { $amount = (float) $amount; if(self::is_zero_decimal_currency($currency)) { return number_format_i18n($amount); } return number_format_i18n($amount / 100, 2); } public static function is_zero_decimal_currency($currency) { $zero_decimal_currencies = apply_filters('prli_stripe_zero_decimal_currencies', array( 'BIF', 'CLP', 'DJF', 'GNF', 'JPY', 'KMF', 'KRW', 'MGA', 'PYG', 'RWF', 'UGX', 'VND', 'VUV', 'XAF', 'XOF', 'XPF', )); return in_array(strtoupper($currency), $zero_decimal_currencies, true); } public static function format_currency($amount, $currency) { return sprintf( '%s %s', strtoupper($currency), self::format_unit_amount($amount, $currency) ); } public static function shipping_countries() { $countries = PrliUtils::countries(); $unsupported = array('AS', 'CX', 'CC', 'CU', 'HM', 'IR', 'KP', 'MH', 'FM', 'NF', 'MP', 'PW', 'SD', 'SY', 'UM', 'VI'); foreach($unsupported as $key) { unset($countries[$key]); } return apply_filters('prli_stripe_shipping_countries', $countries); } public static function to_zero_decimal_amount($amount, $currency) { if(self::is_zero_decimal_currency($currency)) { return (int) $amount; } return (int) ($amount * 100); } public static function get_portal_config_value($key) { $portal = get_option('prli_stripe_customer_portal'); $defaults = array( 'business_profile' => array( 'headline' => __('Manage your Payments', 'pretty-link'), 'privacy_policy_url' => '', 'terms_of_service_url' => '', ), 'default_return_url' => home_url('/'), 'features' => array( 'customer_update' => array( 'allowed_updates' => array('name', 'email', 'address', 'shipping', 'phone'), 'enabled' => true ), 'invoice_history' => array( 'enabled' => true ), 'payment_method_update' => array( 'enabled' => true ), 'subscription_cancel' => array( 'enabled' => true ) ) ); $default = PrliUtils::array_get($defaults, $key); if(is_array($portal)) { return PrliUtils::array_get($portal, $key, $default); } return $default; } /** * Get the name of the page that will redirect to the customer portal * * @return string */ public static function get_customer_portal_page_name() { return apply_filters('pl_customer_portal_page_name', 'pl-customer-portal'); } /** * Is the connection to Stripe active? * * @return bool */ public static function is_connection_active() { if(defined('PRLI_STRIPE_TEST_MODE') && PRLI_STRIPE_TEST_MODE) { return !empty(get_option('prli_stripe_test_secret_key')); } return !empty(get_option('prli_stripe_live_secret_key')); } }