PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / trunk
Shortcodes and extra features for Phlox theme vtrunk
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 5 months ago class-auxels-archive-menu-links.php 5 months ago class-auxels-envato-elements.php 5 months ago class-auxels-import-parser.php 3 years ago class-auxels-import.php 3 years ago class-auxels-search-post-type.php 5 months ago class-auxels-wc-attribute-nav-menu.php 5 months ago class-auxin-admin-dashboard.php 5 months ago class-auxin-demo-importer.php 18 hours ago class-auxin-dependency-sorting.php 3 years ago class-auxin-import.php 5 months ago class-auxin-install.php 5 months ago class-auxin-master-nav-menu-admin.php 5 months ago class-auxin-page-template.php 5 months ago class-auxin-permalink.php 5 months ago class-auxin-plugin-requirements.php 3 years ago class-auxin-post-type-base.php 5 months 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 5 months ago class-auxin-welcome-sections.php 1 year ago class-auxin-welcome.php 1 month ago class-auxin-whitelabel.php 3 years ago class-auxin-widget-indie.php 5 months ago class-auxin-widget-shortcode-map.php 5 months ago class-auxin-widget.php 5 months ago
class-auxels-envato-elements.php
132 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-2026 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 if ( ! current_user_can('manage_options') ) {
89 return array( 'status' => false, 'message' => __( "Access Denied: You don't have the required permissions!", 'auxin-elements') );
90 }
91
92 $extension_id = md5( get_site_url() );
93 $token = sanitize_text_field( $_POST['token'] );
94
95 $args['headers'] = array(
96 'Extensions-Extension-Id' => $extension_id,
97 'Extensions-Token' => $token
98 );
99
100 $response = wp_remote_get( $this->token_verification_endpoint, $args );
101
102 if ( $response && ! is_wp_error( $response ) ) {
103 $response = json_decode( $response['body'], true );
104 if ( isset( $response['error'] ) && isset( $response['error']['message'] ) ) {
105 return array( 'status' => false, 'message' => $response['error']['message'] );
106 }
107
108 if ( isset( $response['subscription_status'] ) && $response['subscription_status'] == 'paid' ) {
109 update_option( 'phlox_envato_elements_token', $token );
110 return array( 'status' => true, 'message' => __( 'Token is valid.', 'auxin-elements' ) );
111 } else {
112 return array( 'status' => false, 'message' => __( ' Token is not valid.', 'auxin-elements' ) );
113 }
114 } else {
115 if ( is_wp_error( $response ) ) {
116 return array( 'status' => false, 'message' => $response->get_error_message() );
117 } else {
118 return array( 'status' => false, 'message' => __( 'Something went wrong. Please try again later', 'auxin-elements' ) );
119 }
120 }
121 }
122
123 /**
124 * Check if envato elements token provided or not
125 */
126 public function is_envato_element_enabled() {
127 return ! empty( get_option( 'phlox_envato_elements_token', '' ) );
128 }
129
130 } // end widget class
131
132