PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.17.4
Shortcodes and extra features for Phlox theme v2.17.4
2.17.21 2.17.20 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.6 1.0.9 1.1.0 1.3.0 1.3.1 1.3.10 1.3.14 1.3.2 1.3.3 1.3.6 1.4.0 1.4.1 1.4.2 1.5.0 1.5.2 1.6.0 1.6.2 1.6.4 1.7.0 1.7.2 2.10.0 2.10.1 2.10.3 2.10.5 2.10.7 2.10.8 2.10.9 2.11.0 2.11.1 2.11.2 2.12.0 2.14.0 2.15.0 2.15.2 2.15.4 2.15.5 2.15.6 2.15.7 2.15.8 2.15.9 2.16.0 2.16.1 2.16.2 2.16.3 2.16.4 2.17.0 2.17.1 2.17.12 2.17.13 2.17.14 2.17.15 2.17.16 2.17.2 2.17.3 2.17.4 2.17.5 2.17.6 2.17.8 2.17.9 2.4.12 2.4.13 2.4.14 2.4.16 2.4.18 2.4.19 2.4.9 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.14 2.5.15 2.5.16 2.5.17 2.5.19 2.5.2 2.5.20 2.5.3 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.10 2.6.12 2.6.13 2.6.14 2.6.15 2.6.16 2.6.17 2.6.19 2.6.2 2.6.20 2.6.4 2.6.5 2.6.7 2.7.0 2.7.1 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.9 2.9.0 2.9.12 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.19 2.9.2 2.9.20 2.9.21 2.9.22 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8
auxin-elements / includes / classes / class-auxels-envato-elements.php
auxin-elements / includes / classes Last commit date
class-auxels-admin-assets.php 1 year ago class-auxels-archive-menu-links.php 1 year ago class-auxels-envato-elements.php 1 year ago class-auxels-import-parser.php 4 years ago class-auxels-import.php 3 years ago class-auxels-search-post-type.php 1 year ago class-auxels-wc-attribute-nav-menu.php 1 year ago class-auxin-admin-dashboard.php 1 year ago class-auxin-demo-importer.php 1 year ago class-auxin-dependency-sorting.php 4 years ago class-auxin-import.php 1 year ago class-auxin-install.php 1 year ago class-auxin-master-nav-menu-admin.php 1 year ago class-auxin-page-template.php 1 year ago class-auxin-permalink.php 1 year ago class-auxin-plugin-requirements.php 3 years ago class-auxin-post-type-base.php 1 year ago class-auxin-svg-support-allowedattributes.php 7 years ago class-auxin-svg-support-allowedtags.php 7 years ago class-auxin-svg-support.php 1 year ago class-auxin-walker-nav-menu-back.php 1 year ago class-auxin-welcome-sections.php 1 year ago class-auxin-welcome.php 1 year ago class-auxin-whitelabel.php 4 years ago class-auxin-widget-indie.php 1 year ago class-auxin-widget-shortcode-map.php 1 year ago class-auxin-widget.php 1 year ago
class-auxels-envato-elements.php
128 lines
1 <?php
2 /**
3 * Main class for comunicating with envato elements
4 *
5 *
6 * @package Auxin
7 * @license LICENSE.txt
8 * @author averta
9 * @link http://phlox.pro/
10 * @copyright (c) 2010-2025 averta
11 */
12
13 // no direct access allowed
14 if ( ! defined('ABSPATH') ) exit;
15
16 /*--------------------------------*/
17
18
19 class Auxels_Envato_Elements {
20
21 /**
22 * Instance of this class.
23 *
24 * @var object
25 */
26 protected static $instance = null;
27
28 public $extension_base_endpoint = 'https://api.extensions.envato.com';
29
30 public $token_verification_endpoint = 'https://api.extensions.envato.com/extensions/user_info';
31
32 /**
33 * Return an instance of this class.
34 *
35 * @return object A single instance of this class.
36 */
37 public static function get_instance() {
38
39 // If the single instance hasn't been set, set it now.
40 if ( null == self::$instance ) {
41 self::$instance = new self;
42 }
43
44 return self::$instance;
45 }
46
47 public function __construct() {
48 add_action( 'wp_ajax_aux_verify_envato_elements_token', array( $this, 'ajax_verify_token' ) );
49 }
50
51 private function encode_url_parameter( $parameter ) {
52 $parameter = html_entity_decode( $parameter, ENT_QUOTES | ENT_XML1, 'UTF-8' );
53 $parameter = str_replace( '#', '', $parameter );
54
55 return urlencode( $parameter );
56 }
57
58 /**
59 * Token generator url
60 *
61 * @return string
62 */
63 public function get_token_url() {
64 $extension_description = trim( get_bloginfo( 'name' ) );
65 if ( strlen( $extension_description ) > 0 ) {
66 $extension_description .= ' (' . get_home_url() . ')';
67 } else {
68 $extension_description = get_home_url();
69 }
70 $extension_description = substr( $extension_description, 0, 254 );
71
72 return $this->extension_base_endpoint . "/extensions/begin_activation?extension_id=" . md5( get_site_url() ) . "&extension_type=envato-wordpress&extension_description=" . $this->encode_url_parameter( $extension_description );
73 }
74
75 /**
76 * Verify Envato Elemnents token
77 */
78 public function ajax_verify_token() {
79 wp_send_json( $this->verify_token() );
80 }
81
82 public function verify_token() {
83
84 if ( ! empty( get_option( 'phlox_envato_elements_token', '' ) ) ) {
85 return array( 'status' => true, 'message' => __( 'Token is valid.', 'auxin-elements') );
86 }
87
88 $extension_id = md5( get_site_url() );
89 $token = sanitize_text_field( $_POST['token'] );
90
91 $args['headers'] = array(
92 'Extensions-Extension-Id' => $extension_id,
93 'Extensions-Token' => $token
94 );
95
96 $response = wp_remote_get( $this->token_verification_endpoint, $args );
97
98 if ( $response && ! is_wp_error( $response ) ) {
99 $response = json_decode( $response['body'], true );
100 if ( isset( $response['error'] ) && isset( $response['error']['message'] ) ) {
101 return array( 'status' => false, 'message' => $response['error']['message'] );
102 }
103
104 if ( isset( $response['subscription_status'] ) && $response['subscription_status'] == 'paid' ) {
105 update_option( 'phlox_envato_elements_token', $token );
106 return array( 'status' => true, 'message' => __( 'Token is valid.', 'auxin-elements' ) );
107 } else {
108 return array( 'status' => false, 'message' => __( ' Token is not valid.', 'auxin-elements' ) );
109 }
110 } else {
111 if ( is_wp_error( $response ) ) {
112 return array( 'status' => false, 'message' => $response->get_error_message() );
113 } else {
114 return array( 'status' => false, 'message' => __( 'Something went wrong. Please try again later', 'auxin-elements' ) );
115 }
116 }
117 }
118
119 /**
120 * Check if envato elements token provided or not
121 */
122 public function is_envato_element_enabled() {
123 return ! empty( get_option( 'phlox_envato_elements_token', '' ) );
124 }
125
126 } // end widget class
127
128