X7ROOT File Manager
Current Path:
/home/oakwood/public_html/wp-content/plugins/premium-addons-pro/includes
home
/
oakwood
/
public_html
/
wp-content
/
plugins
/
premium-addons-pro
/
includes
/
ðŸ“
..
📄
addons-integration.php
(21.64 KB)
📄
class-modules-manager.php
(260.83 KB)
📄
class-papro-core.php
(7.28 KB)
ðŸ“
compatibility
ðŸ“
deps
ðŸ“
grid-builder
📄
pa-post-ticker-helper.php
(7.57 KB)
📄
pa-smart-post-listing-helper.php
(4.42 KB)
📄
papro-helper.php
(6.17 KB)
📄
plugin.php
(1.43 KB)
ðŸ“
white-label
Editing: papro-helper.php
<?php /** * PAPRO Helper Functions. */ namespace PremiumAddonsPro\Includes; use Elementor\Utils; use Elementor\Group_Control_Image_Size; use Elementor\Control_Media; if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class Helper_Functions. */ class PAPRO_Helper { /** * A list of safe tage for `validate_html_tag` method. */ const ALLOWED_HTML_WRAPPER_TAGS = array( 'article', 'aside', 'div', 'footer', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'main', 'nav', 'p', 'section', 'span', ); /** * Valide HTML Tag * * Validates an HTML tag against a safe allowed list. * * @param string $tag HTML tag. * * @return string */ public static function validate_html_tag( $tag ) { return in_array( strtolower( $tag ), self::ALLOWED_HTML_WRAPPER_TAGS, true ) ? $tag : 'div'; } /** * Get attachment image HTML. * * Retrieve the attachment image HTML code. Used to add custom classes. * * Note that some widgets use the same key for the media control that allows * the image selection and for the image size control that allows the user * to select the image size, in this case the third parameter should be null * or the same as the second parameter. But when the widget uses different * keys for the media control and the image size control, when calling this * method you should pass the keys. * * @since 1.0.0 * @access public * @static * * @param array $settings Control settings. * @param string $image_size_key Optional. Settings key for image size. * Default is `image`. * @param string $image_key Optional. Settings key for image. Default * is null. If not defined uses image size key * as the image key. * @param string $classes Optional. Classes list to be added to the image HTML markup. * @param bool $is_logo true if logo image. * * @return string Image HTML. */ public static function get_attachment_image_html( $settings, $image_size_key = 'image', $image_key = null, $classes = '', $is_logo = false ) { if ( ! $image_key ) { $image_key = $image_size_key; } $image = $settings[ $image_key ]; $is_repeater = false; if ( isset( $settings[ $image_size_key . '_size' ] ) ) { $size = $settings[ $image_size_key . '_size' ]; } else { // Used with get_image_data() method which is used with repeaters. $size = isset( $image['image_size'] ) ? $image['image_size'] : 'full'; $is_repeater = true; } $html = ''; // If is the new version - with image size. $image_sizes = get_intermediate_image_sizes(); $image_sizes[] = 'full'; if ( ! empty( $image['id'] ) && ! wp_attachment_is_image( $image['id'] ) ) { $image['id'] = ''; } // On static mode don't use WP responsive images. if ( ! empty( $image['id'] ) && in_array( $size, $image_sizes ) ) { $image_class = " attachment-$size size-$size " . esc_attr( $classes ); $image_attr = array( 'class' => trim( $image_class ), ); if ( $is_logo ) { $image_attr['alt'] = esc_attr( get_bloginfo( 'name' ) ); $image_attr['srcset'] = $image['url']; if ( ! empty( $settings['image_2x']['url'] ) ) { $image_attr['srcset'] .= ' 1x, ' . esc_url( $settings['image_2x']['url'] ) . ' 2x'; } } $lazyload = apply_filters( 'pa_layers_lazyload', false ); if ( $lazyload ) { $image_attr['loading'] = false; } $html .= wp_get_attachment_image( $image['id'], $size, false, $image_attr ); } else { // custom size // If repeater, then we should pass the data for the current image, not the settings object. $size_key = $is_repeater ? 'image' : $image_size_key; $source = $is_repeater ? $image : $settings; $image_src = Group_Control_Image_Size::get_attachment_image_src( $image['id'], $size_key, $source ); if ( ! $image_src && isset( $image['url'] ) ) { $image_src = $image['url']; } if ( ! empty( $image_src ) ) { $image_class_html = ! empty( $classes ) ? ' class="' . $classes . '"' : ''; $alt = $is_logo ? esc_attr( get_bloginfo( 'name' ) ) : Control_Media::get_image_alt( $image ); $srcset = ''; $size = ''; if ( $is_logo && ! empty( $settings['image_2x']['url'] ) ) { $retina_src = esc_url( $settings['image_2x']['url'] ); $srcset = 'srcset="' . $image_src . ' 1x, ' . $retina_src . ' 2x "'; $custom_dimension = $source['image_size_custom_dimension']; $size = isset( $custom_dimension['width'] ) && ! empty( $custom_dimension['width'] ) ? ' width="' . $custom_dimension['width'] . '" ' : ''; $size .= isset( $custom_dimension['height'] ) && ! empty( $custom_dimension['height'] ) ? ' height="' . $custom_dimension['height'] . '" ' : ''; } $html .= sprintf( '<img src="%s" title="%s" alt="%s" %s %s %s/>', esc_attr( $image_src ), Control_Media::get_image_title( $image ), $alt, $srcset, $size, $image_class_html ); } } return Utils::print_wp_kses_extended( $html, array( 'image' ) ); } /** * Check Instagram token expiration * * @since 2.8.11 * @access public * * @param string $old_token the original access token. * * @return void */ public static function check_instagram_token( $old_token ) { $token = get_option( 'papro_insta_feed_' . substr( $old_token, -8 ), false ); $transient_name = 'papro_insta_feed_' . $old_token; // Search for cached data. $cache = get_transient( $transient_name ); $refreshed_token = $old_token; if ( false === $cache && $token ) { $response = wp_remote_retrieve_body( wp_remote_get( 'https://graph.instagram.com/refresh_access_token?grant_type=ig_refresh_token&access_token=' . $token ) ); $response = json_decode( $response ); $refreshed_token = isset( $response->access_token ) ? $response->access_token : $token; } elseif ( ! $token ) { update_option( 'papro_insta_feed_' . substr( $old_token, -8 ), $old_token ); set_transient( $transient_name, true, 59 * DAY_IN_SECONDS ); } return $refreshed_token; } }
Upload File
Create Folder