geno/wp-content/plugins/essential-addons-for-elementor-lite/includes/Elements/NFT_Gallery.php
2024-02-01 11:54:18 +00:00

2935 lines
110 KiB
PHP

<?php
namespace Essential_Addons_Elementor\Elements;
// If this file is called directly, abort.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
use \Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use \Elementor\Group_Control_Border;
use \Elementor\Group_Control_Box_Shadow;
use \Elementor\Group_Control_Image_Size;
use \Elementor\Group_Control_Typography;
use Elementor\Icons_Manager;
use \Elementor\Plugin;
use \Elementor\Utils;
use \Elementor\Widget_Base;
use \Essential_Addons_Elementor\Classes\Helper;
use ParagonIE\Sodium\Core\Curve25519\Ge\P2;
class NFT_Gallery extends Widget_Base {
private $nft_gallery_items_count = 0;
private $nft_documentation_url = 'https://essential-addons.com/elementor/docs/ea-nft-gallery/';
public function get_name() {
return 'eael-nft-gallery';
}
public function get_title() {
return esc_html__( 'NFT Gallery', 'essential-addons-for-elementor-lite' );
}
public function get_icon() {
return 'eaicon-nft-gallery';
}
public function get_categories() {
return [ 'essential-addons-elementor' ];
}
public function get_keywords() {
return [
'gallery',
'nft gallery',
'ea nft gallery',
'image gallery',
'photo gallery',
'portfolio',
'ea portfolio',
'image grid',
'photo grid',
'responsive gallery',
'ea',
'essential addons'
];
}
public function get_custom_help_url() {
return 'https://essential-addons.com/elementor/docs/ea-nft-gallery/';
}
protected function register_controls() {
/**
* NFT Settings
*/
$this->start_controls_section(
'eael_section_nft_gallery_general_settings',
[
'label' => esc_html__( 'Query', 'essential-addons-for-elementor-lite' ),
]
);
$this->add_control(
'eael_nft_gallery_sources',
[
'label' => __( 'Source', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SELECT,
'default' => 'opensea',
'options' => [
'opensea' => __( 'OpenSea', 'essential-addons-for-elementor-lite' ),
],
]
);
$this->add_control(
'eael_nft_gallery_source_key',
[
'label' => __( 'API Key', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::TEXT,
'placeholder' => 'Enter API key',
'description' => sprintf( __( 'Get your API key from <a href="https://docs.opensea.io/reference/api-keys" class="eael-btn" target="_blank">%s</a>',
'essential-addons-for-elementor-lite' ), esc_html( 'here' ) ),
'ai' => [
'active' => false,
],
]
);
$this->add_control(
'eael_nft_gallery_opensea_type',
[
'label' => esc_html__( 'Type', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SELECT,
'default' => 'assets',
'options' => [
'assets' => esc_html__( 'Assets', 'essential-addons-for-elementor-lite' ),
'collections' => esc_html__( 'Collections', 'essential-addons-for-elementor-lite' ),
],
'condition' => [
'eael_nft_gallery_sources' => 'opensea'
],
]
);
$this->add_control(
'eael_nft_gallery_opensea_filterby',
[
'label' => esc_html__( 'Filter By', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SELECT,
'default' => 'collection-slug',
'options' => [
'collection-slug' => esc_html__( 'Collection Slug', 'essential-addons-for-elementor-lite' ),
'wallet-address' => esc_html__( 'Wallet Address', 'essential-addons-for-elementor-lite' ),
],
'condition' => [
'eael_nft_gallery_opensea_type' => 'assets',
],
]
);
$this->add_control(
'eael_nft_gallery_opensea_filterby_slug',
[
'label' => __( 'Collection Slug', 'essential-addons-for-elementor-lite' ),
'description' => sprintf( __( 'Checkout this <a target="_blank" href="%s">document</a> to learn how to obtain a collection slug.', 'essential-addons-for-elementor-lite' ), esc_url( $this->nft_documentation_url ) ),
'type' => Controls_Manager::TEXT,
'placeholder' => 'Collection slug',
'condition' => [
'eael_nft_gallery_opensea_type' => 'assets',
'eael_nft_gallery_opensea_filterby' => 'collection-slug',
],
'ai' => [
'active' => false,
],
]
);
$this->add_control(
'eael_nft_gallery_opensea_filterby_wallet',
[
'label' => __( 'Wallet Address', 'essential-addons-for-elementor-lite' ),
'description' => sprintf( __( 'Checkout this <a target="_blank" href="%s">document</a> to learn how to obtain a wallet address.', 'essential-addons-for-elementor-lite' ), esc_url( $this->nft_documentation_url ) ),
'type' => Controls_Manager::TEXT,
'placeholder' => '0x1......',
'conditions' => [
'relation' => 'or',
'terms' => [
[
'relation' => 'and',
'terms' => [
[
'name' => 'eael_nft_gallery_opensea_type',
'value' => 'assets',
],
[
'name' => 'eael_nft_gallery_opensea_filterby',
'value' => 'wallet-address',
],
]
],
[
'relation' => 'and',
'terms' => [
[
'name' => 'eael_nft_gallery_opensea_type',
'value' => 'collections',
],
]
],
],
],
'ai' => [
'active' => false,
],
]
);
$this->add_control( 'eael_nft_gallery_opensea_order', [
'label' => __( 'Order', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SELECT,
'options' => [
'asc' => 'Ascending',
'desc' => 'Descending',
],
'default' => 'desc',
'condition' => [
'eael_nft_gallery_opensea_type!' => 'collections'
],
] );
$this->add_control(
'eael_nft_gallery_opensea_item_limit',
[
'label' => __( 'Item Limit', 'essential-addons-for-elementor-lite' ),
'description' => __( 'Total number of items to show', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::NUMBER,
'default' => '12',
'min' => '1',
]
);
$this->add_control(
'eael_nft_gallery_opensea_data_cache_time',
[
'label' => __( 'Data Cache Time', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::NUMBER,
'min' => 0,
'default' => 60,
'description' => __( 'Cache expiration time (in Minutes), 0 or empty sets 1 day.', 'essential-addons-for-elementor-lite' ),
]
);
$this->end_controls_section();
/**
* NFT Settings
*/
$this->start_controls_section(
'eael_section_nft_gallery_settings',
[
'label' => esc_html__( 'Layout', 'essential-addons-for-elementor-lite' ),
]
);
$this->add_control(
'eael_nft_gallery_items_layout',
[
'label' => esc_html__( 'Layout Type', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SELECT,
'default' => 'grid',
'options' => [
'grid' => esc_html__( 'Grid', 'essential-addons-for-elementor-lite' ),
'list' => esc_html__( 'List', 'essential-addons-for-elementor-lite' ),
]
]
);
$this->add_control(
'eael_nft_gallery_style_preset',
[
'label' => esc_html__( 'Style Preset', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SELECT,
'default' => 'preset-1',
'options' => [
'preset-1' => esc_html__( 'Preset 1', 'essential-addons-for-elementor-lite' ),
'preset-2' => esc_html__( 'Preset 2', 'essential-addons-for-elementor-lite' ),
],
'condition' => [
'eael_nft_gallery_items_layout' => 'grid'
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_column',
[
'label' => esc_html__( 'Columns', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SELECT,
'default' => '4',
'options' => [
'1' => esc_html__( '1', 'essential-addons-for-elementor-lite' ),
'2' => esc_html__( '2', 'essential-addons-for-elementor-lite' ),
'3' => esc_html__( '3', 'essential-addons-for-elementor-lite' ),
'4' => esc_html__( '4', 'essential-addons-for-elementor-lite' ),
'5' => esc_html__( '5', 'essential-addons-for-elementor-lite' ),
'6' => esc_html__( '6', 'essential-addons-for-elementor-lite' ),
],
'condition' => [
'eael_nft_gallery_items_layout' => 'grid'
],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-grid' => 'grid-template-columns: repeat( {{VALUE}}, 1fr);',
]
]
);
$this->add_control(
'eael_nft_gallery_show_image',
[
'label' => __( 'NFT Image', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => __( 'Show', 'essential-addons-for-elementor-lite' ),
'label_off' => __( 'Hide', 'essential-addons-for-elementor-lite' ),
'return_value' => 'yes',
'default' => 'yes',
]
);
$this->add_control(
'eael_nft_gallery_image_clickable',
[
'label' => __( 'Image Clickable?', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => __( 'Show', 'essential-addons-for-elementor-lite' ),
'label_off' => __( 'Hide', 'essential-addons-for-elementor-lite' ),
'return_value' => 'yes',
'default' => 'yes',
'conditions' => [
'relation' => 'or',
'terms' => [
[
'relation' => 'and',
'terms' => [
[
'name' => 'eael_nft_gallery_items_layout',
'value' => 'grid',
],
[
'name' => 'eael_nft_gallery_show_image',
'value' => 'yes',
],
]
],
[
'relation' => 'and',
'terms' => [
[
'name' => 'eael_nft_gallery_items_layout',
'value' => 'list',
],
[
'name' => 'eael_nft_gallery_show_image',
'value' => 'yes',
],
]
],
],
],
]
);
$this->add_control(
'eael_nft_gallery_show_title',
[
'label' => __( 'Title', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => __( 'Show', 'essential-addons-for-elementor-lite' ),
'label_off' => __( 'Hide', 'essential-addons-for-elementor-lite' ),
'return_value' => 'yes',
'default' => 'yes',
]
);
$this->add_control(
'eael_nft_gallery_show_current_price',
[
'label' => __( 'Current Price', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => __( 'Show', 'essential-addons-for-elementor-lite' ),
'label_off' => __( 'Hide', 'essential-addons-for-elementor-lite' ),
'return_value' => 'yes',
'default' => 'yes',
]
);
$this->add_control(
'eael_nft_gallery_show_owner',
[
'label' => __( 'Current Owner', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::HIDDEN,
'label_on' => __( 'Show', 'essential-addons-for-elementor-lite' ),
'label_off' => __( 'Hide', 'essential-addons-for-elementor-lite' ),
'return_value' => 'yes',
'default' => '',
'conditions' => [
'relation' => 'or',
'terms' => [
[
'relation' => 'and',
'terms' => [
[
'name' => 'eael_nft_gallery_items_layout',
'value' => 'grid',
],
[
'name' => 'eael_nft_gallery_style_preset',
'value' => 'preset-1',
],
]
],
[
'name' => 'eael_nft_gallery_items_layout',
'value' => 'list',
],
],
],
]
);
$this->add_control(
'eael_nft_gallery_show_creator',
[
'label' => __( 'Creator', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => __( 'Show', 'essential-addons-for-elementor-lite' ),
'label_off' => __( 'Hide', 'essential-addons-for-elementor-lite' ),
'return_value' => 'yes',
'default' => '',
'conditions' => [
'relation' => 'or',
'terms' => [
[
'relation' => 'and',
'terms' => [
[
'name' => 'eael_nft_gallery_items_layout',
'value' => 'grid',
],
[
'name' => 'eael_nft_gallery_style_preset',
'value' => 'preset-1',
],
]
],
[
'name' => 'eael_nft_gallery_items_layout',
'value' => 'list',
],
],
],
]
);
$this->add_control(
'eael_nft_gallery_show_last_sale_ends_in',
[
'label' => __( 'Last Sale / Ends In', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => __( 'Show', 'essential-addons-for-elementor-lite' ),
'label_off' => __( 'Hide', 'essential-addons-for-elementor-lite' ),
'return_value' => 'yes',
'default' => 'yes',
'conditions' => [
'relation' => 'or',
'terms' => [
[
'relation' => 'and',
'terms' => [
[
'name' => 'eael_nft_gallery_items_layout',
'value' => 'grid',
],
[
'name' => 'eael_nft_gallery_style_preset',
'value' => 'preset-1',
],
]
],
[
'name' => 'eael_nft_gallery_items_layout',
'value' => 'list',
],
],
],
]
);
$this->add_control(
'eael_nft_gallery_show_button',
[
'label' => __( 'Button', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => __( 'Show', 'essential-addons-for-elementor-lite' ),
'label_off' => __( 'Hide', 'essential-addons-for-elementor-lite' ),
'return_value' => 'yes',
'default' => 'yes',
'conditions' => [
'relation' => 'or',
'terms' => [
[
'relation' => 'and',
'terms' => [
[
'name' => 'eael_nft_gallery_items_layout',
'value' => 'grid',
],
[
'name' => 'eael_nft_gallery_style_preset',
'value' => 'preset-1',
],
]
],
],
],
]
);
$this->add_control(
'eael_nft_gallery_show_chain',
[
'label' => __( 'Chain', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => __( 'Show', 'essential-addons-for-elementor-lite' ),
'label_off' => __( 'Hide', 'essential-addons-for-elementor-lite' ),
'return_value' => 'yes',
'default' => 'yes',
'condition' => [
'eael_nft_gallery_items_layout' => 'grid'
],
]
);
$this->end_controls_section();
/**
* NFT Content
*/
$this->start_controls_section(
'eael_section_nft_gallery_content',
[
'label' => esc_html__( 'Content', 'essential-addons-for-elementor-lite' ),
]
);
$this->add_control(
'eael_section_nft_gallery_content_label',
[
'label' => esc_html__( 'Label', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::HEADING,
]
);
$this->add_control( 'eael_nft_gallery_content_owned_by_label', [
'label' => esc_html__( 'Owner', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::TEXT,
'label_block' => false,
'default' => esc_html__( 'Owner', 'essential-addons-for-elementor-lite' ),
'condition' => [
'eael_nft_gallery_show_owner' => 'yes'
],
'ai' => [
'active' => false,
],
] );
$this->add_control( 'eael_nft_gallery_content_created_by_label', [
'label' => esc_html__( 'Creator', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::TEXT,
'label_block' => false,
'default' => esc_html__( 'Creator', 'essential-addons-for-elementor-lite' ),
'condition' => [
'eael_nft_gallery_show_creator' => 'yes'
],
'ai' => [
'active' => false,
],
] );
$this->add_control( 'eael_nft_gallery_content_view_details_label', [
'label' => esc_html__( 'View Details', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::TEXT,
'label_block' => false,
'default' => esc_html__( 'View Details', 'essential-addons-for-elementor-lite' ),
'ai' => [
'active' => false,
],
] );
$this->add_control( 'eael_nft_gallery_content_no_items_label', [
'label' => esc_html__( 'No Items', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::TEXT,
'label_block' => false,
'default' => esc_html__( 'No Items Found!', 'essential-addons-for-elementor-lite' ),
'ai' => [
'active' => false,
],
] );
$this->add_control( 'eael_nft_gallery_content_last_sale_label', [
'label' => esc_html__( 'Last sale', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::TEXT,
'label_block' => false,
'default' => esc_html__( 'Last sale:', 'essential-addons-for-elementor-lite' ),
'ai' => [
'active' => false,
],
] );
$this->add_control( 'eael_nft_gallery_content_ends_in_label', [
'label' => esc_html__( 'Ends in', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::TEXT,
'label_block' => false,
'default' => esc_html__( 'Ends in:', 'essential-addons-for-elementor-lite' ),
'ai' => [
'active' => false,
],
] );
$this->end_controls_section();
/**
* Content Tab: Load More Button
*/
$this->start_controls_section(
'eael_nft_gallery_section_pagination',
[
'label' => __( 'Load More Button', 'essential-addons-for-elementor-lite' ),
]
);
$this->add_control(
'eael_nft_gallery_pagination',
[
'label' => __( 'Show Load More', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SWITCHER,
'default' => 'false',
'frontend_available' => true,
]
);
$this->add_control(
'eael_nft_gallery_posts_per_page',
[
'label' => __( 'Items Per Page', 'essential-addons-for-elementor-lite' ),
'description' => __( 'Make sure this value is less than <b>Post Limit</b>', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::TEXT,
'default' => 8,
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
],
'ai' => [
'active' => false,
],
]
);
$this->add_control(
'eael_nft_gallery_load_more_text',
[
'label' => __( 'Button Text', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::TEXT,
'dynamic' => [ 'active' => true ],
'default' => __( 'Load More', 'essential-addons-for-elementor-lite' ),
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
],
'ai' => [
'active' => false,
],
]
);
$this->add_control(
'eael_nft_gallery_nomore_items_text',
[
'label' => __( 'No More Items Text', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::TEXT,
'dynamic' => [ 'active' => true ],
'default' => __( 'No more items!', 'essential-addons-for-elementor-lite' ),
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
],
'ai' => [
'active' => false,
],
]
);
$this->add_control(
'eael_nft_gallery_button_size',
[
'label' => __( 'Size', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SELECT,
'default' => 'sm',
'options' => [
'xs' => __( 'Extra Small', 'essential-addons-for-elementor-lite' ),
'sm' => __( 'Small', 'essential-addons-for-elementor-lite' ),
'md' => __( 'Medium', 'essential-addons-for-elementor-lite' ),
'lg' => __( 'Large', 'essential-addons-for-elementor-lite' ),
'xl' => __( 'Extra Large', 'essential-addons-for-elementor-lite' ),
],
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_text!' => '',
],
]
);
$this->add_control(
'eael_nft_gallery_load_more_icon_new',
[
'label' => __( 'Button Icon', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::ICONS,
'fa4compatibility' => 'eael_nft_gallery_load_more_icon',
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
],
]
);
$this->add_control(
'eael_nft_gallery_button_icon_position',
[
'label' => __( 'Icon Position', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SELECT,
'default' => 'after',
'options' => [
'after' => __( 'After', 'essential-addons-for-elementor-lite' ),
'before' => __( 'Before', 'essential-addons-for-elementor-lite' ),
],
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_load_more_align',
[
'label' => __( 'Alignment', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::CHOOSE,
'options' => [
'left' => [
'title' => __( 'Left', 'essential-addons-for-elementor-lite' ),
'icon' => 'eicon-h-align-left',
],
'center' => [
'title' => __( 'Center', 'essential-addons-for-elementor-lite' ),
'icon' => 'eicon-h-align-center',
],
'right' => [
'title' => __( 'Right', 'essential-addons-for-elementor-lite' ),
'icon' => 'eicon-h-align-right',
],
],
'default' => 'center',
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-loadmore-wrap' => 'text-align: {{VALUE}};',
],
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
],
]
);
$this->end_controls_section();
/**
* -------------------------------------------
* Tab Style (NFT Gallery Style)
* -------------------------------------------
*/
$this->start_controls_section(
'eael_section_nft_gallery_gallery_style',
[
'label' => esc_html__( 'Gallery', 'essential-addons-for-elementor-lite' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_responsive_control(
'eael_nft_gallery_wrap_margin',
[
'label' => esc_html__( 'Margin', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_wrap_padding',
[
'label' => esc_html__( 'Padding', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_control(
'eael_nft_gallery_wrap_border_radius',
[
'label' => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'max' => 100,
],
],
'default' => [
'size' => 10,
],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items' => 'border-radius: {{SIZE}}px;',
],
]
);
$this->start_controls_tabs( 'eael_nft_gallery_wrap_controls_tabs' );
$this->start_controls_tab( 'eael_nft_gallery_wrap_control_normal', [
'label' => esc_html__( 'Normal', 'essential-addons-for-elementor-lite' ),
] );
$this->add_control(
'eael_nft_gallery_wrap_normal_background_color',
[
'label' => esc_html__( 'Background Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items' => 'background: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'eael_nft_gallery_wrap_normal_border',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items',
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'eael_nft_gallery_wrap_normal_box_shadow',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items',
]
);
$this->end_controls_tab();
$this->start_controls_tab( 'eael_nft_gallery_wrap_control_hover', [
'label' => esc_html__( 'Hover', 'essential-addons-for-elementor-lite' ),
] );
$this->add_control(
'eael_nft_gallery_wrap_hover_background_color',
[
'label' => esc_html__( 'Background Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items:hover' => 'background: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'eael_nft_gallery_wrap_hover_border',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items:hover',
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'eael_nft_gallery_wrap_hover_box_shadow',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items:hover',
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->end_controls_section();
/**
* -------------------------------------------
* Tab Style ( Gallery Item Style )
* -------------------------------------------
*/
$this->start_controls_section(
'eael_section_nft_gallery_gallery_item_style',
[
'label' => esc_html__( 'Items', 'essential-addons-for-elementor-lite' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_responsive_control(
'eael_nft_gallery_item_margin',
[
'label' => esc_html__( 'Margin', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-item' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_item_padding',
[
'label' => esc_html__( 'Padding', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-item' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_control(
'eael_nft_gallery_item_border_radius',
[
'label' => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'max' => 100,
],
],
'default' => [
'size' => 10,
],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-item,
{{WRAPPER}} .eael-nft-gallery-wrapper .preset-2 .eael-nft-item > a' => 'border-radius: {{SIZE}}px;',
],
]
);
$this->add_control(
'eael_nft_gallery_item_overlay_color',
[
'label' => esc_html__( 'Overlay Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .preset-2 .eael-nft-item .eael-nft-thumbnail::before' => 'background: {{VALUE}};',
],
'default' => 'rgba(0, 0, 0, 0.5)',
'condition' => [
'eael_nft_gallery_items_layout' => 'grid',
'eael_nft_gallery_style_preset' => 'preset-2',
],
]
);
$this->start_controls_tabs( 'eael_nft_gallery_item_controls_tabs' );
$this->start_controls_tab( 'eael_nft_gallery_item_control_normal', [
'label' => esc_html__( 'Normal', 'essential-addons-for-elementor-lite' ),
] );
$this->add_control(
'eael_nft_gallery_item_normal_background_color',
[
'label' => esc_html__( 'Background Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-item' => 'background: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'eael_nft_gallery_item_normal_border',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-item',
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'eael_nft_gallery_item_normal_box_shadow',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-item',
]
);
$this->end_controls_tab();
$this->start_controls_tab( 'eael_nft_gallery_item_control_hover', [
'label' => esc_html__( 'Hover', 'essential-addons-for-elementor-lite' ),
] );
$this->add_control(
'eael_nft_gallery_item_hover_background_color',
[
'label' => esc_html__( 'Background Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-item:hover' => 'background: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'eael_nft_gallery_item_hover_border',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-item:hover',
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'eael_nft_gallery_item_hover_box_shadow',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-item:hover',
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->end_controls_section();
/**
* -------------------------------------------
* Tab Style ( NFT Image Style )
* -------------------------------------------
*/
$this->start_controls_section(
'eael_section_nft_gallery_nft_image_style',
[
'label' => esc_html__( 'Image', 'essential-addons-for-elementor-lite' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'eael_nft_gallery_show_image' => 'yes',
],
]
);
$this->add_responsive_control( "eael_nft_gallery_nft_image_width", [
'label' => esc_html__( 'Width', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [
'px',
'rem',
'%',
],
'range' => [
'px' => [
'min' => 0,
'max' => 1000,
'step' => 5,
],
'rem' => [
'min' => 0,
'max' => 100,
'step' => .5,
],
'%' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-thumbnail img" => 'width: {{SIZE}}{{UNIT}};',
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-list .eael-nft-list-thumbnail img" => 'width: {{SIZE}}{{UNIT}};',
],
] );
$this->add_responsive_control( "eael_nft_gallery_nft_image_height", [
'label' => esc_html__( 'Height', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [
'px',
'rem',
],
'range' => [
'px' => [
'min' => 0,
'max' => 1000,
'step' => 5,
],
'rem' => [
'min' => 0,
'max' => 100,
'step' => .5,
],
],
'selectors' => [
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-thumbnail img" => 'height: {{SIZE}}{{UNIT}};',
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-list .eael-nft-list-thumbnail img" => 'height: {{SIZE}}{{UNIT}};',
],
] );
$this->add_responsive_control( "eael_nft_gallery_nft_image_margin", [
'label' => __( 'Margin', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [
'px',
'em',
'%',
],
'selectors' => [
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-thumbnail" => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-list .eael-nft-list-thumbnail" => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
] );
$this->add_responsive_control( "eael_nft_gallery_nft_image_padding", [
'label' => __( 'Padding', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [
'px',
'em',
'%',
],
'selectors' => [
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-thumbnail" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-list .eael-nft-list-thumbnail" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
] );
$this->add_group_control( Group_Control_Border::get_type(), [
'name' => "eael_nft_gallery_nft_image_border",
'selector' => "{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-thumbnail img, {{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-list .eael-nft-list-thumbnail img",
] );
$this->add_control(
'eael_nft_gallery_nft_image_border_radius',
[
'label' => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-thumbnail img' => 'border-radius: {{SIZE}}px;',
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-list .eael-nft-list-thumbnail img' => 'border-radius: {{SIZE}}px;',
],
]
);
$this->end_controls_section();
/**
* -------------------------------------------
* Tab Style ( Title Style )
* -------------------------------------------
*/
$this->start_controls_section(
'eael_section_nft_gallery_title_style',
[
'label' => esc_html__( 'Title', 'essential-addons-for-elementor-lite' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'eael_nft_gallery_show_title' => 'yes',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'eael_nft_gallery_title_typography',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-title',
]
);
$this->add_control(
'eael_nft_gallery_title_text_color',
[
'label' => esc_html__( 'Text Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-title' => 'color: {{VALUE}};',
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-list .eael-nft-content .eael-nft-title a' => 'color: {{VALUE}};',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_title_margin',
[
'label' => esc_html__( 'Margin', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_title_padding',
[
'label' => esc_html__( 'Padding', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-title' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->end_controls_section();
/**
* -------------------------------------------
* Tab Style ( Current Price Style )
* -------------------------------------------
*/
$this->start_controls_section(
'eael_section_nft_gallery_current_price_style',
[
'label' => esc_html__( 'Price', 'essential-addons-for-elementor-lite' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'eael_nft_gallery_show_current_price' => 'yes',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'eael_nft_gallery_current_price_typography',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-current-price',
]
);
$this->add_control(
'eael_nft_gallery_current_price_text_color',
[
'label' => esc_html__( 'Text Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-current-price' => 'color: {{VALUE}};',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_current_price_margin',
[
'label' => esc_html__( 'Margin', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-current-price' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_current_price_padding',
[
'label' => esc_html__( 'Padding', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-current-price' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->end_controls_section();
/**
* -------------------------------------------
* Tab Style ( Last Sale / Ends In Style )
* -------------------------------------------
*/
$this->start_controls_section(
'eael_section_nft_gallery_last_sale_ends_in_style',
[
'label' => esc_html__( 'Last Sale / Ends In', 'essential-addons-for-elementor-lite' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'eael_nft_gallery_show_last_sale_ends_in' => 'yes',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'eael_nft_gallery_last_sale_ends_in_typography',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-ends-in span, {{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-last-sale span',
]
);
$this->add_control(
'eael_nft_gallery_last_sale_ends_in_text_color',
[
'label' => esc_html__( 'Text Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-ends-in span' => 'color: {{VALUE}};',
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-last-sale span' => 'color: {{VALUE}};',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_last_sale_ends_in_margin',
[
'label' => esc_html__( 'Margin', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-ends-in' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-last-sale' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_last_sale_ends_in_padding',
[
'label' => esc_html__( 'Padding', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-ends-in' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-last-sale' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->end_controls_section();
/**
* -------------------------------------------
* Tab Style ( Creator Style )
* -------------------------------------------
*/
$this->start_controls_section(
'eael_section_nft_gallery_created_by_style',
[
'label' => esc_html__( 'Creator', 'essential-addons-for-elementor-lite' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'eael_nft_gallery_show_creator' => 'yes',
],
]
);
$this->add_control( 'eael_nft_gallery_created_by_image', [
'label' => __( 'Image', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::HEADING,
] );
$this->add_responsive_control( "eael_nft_gallery_created_by_image_width", [
'label' => esc_html__( 'Width', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [
'px',
'rem',
'%',
],
'range' => [
'px' => [
'min' => 0,
'max' => 1000,
'step' => 5,
],
'rem' => [
'min' => 0,
'max' => 100,
'step' => .5,
],
'%' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-creator-wrapper img" => 'width: {{SIZE}}{{UNIT}};',
],
] );
$this->add_responsive_control( "eael_nft_gallery_created_by_image_height", [
'label' => esc_html__( 'Height', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [
'px',
'rem',
],
'range' => [
'px' => [
'min' => 0,
'max' => 1000,
'step' => 5,
],
'rem' => [
'min' => 0,
'max' => 100,
'step' => .5,
],
],
'selectors' => [
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-creator-wrapper img" => 'height: {{SIZE}}{{UNIT}};',
],
] );
$this->add_responsive_control( "eael_nft_gallery_created_by_image_margin", [
'label' => __( 'Margin', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [
'px',
'em',
'%',
],
'selectors' => [
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-creator-wrapper img" => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
] );
$this->add_responsive_control( "eael_nft_gallery_created_by_image_padding", [
'label' => __( 'Padding', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [
'px',
'em',
'%',
],
'selectors' => [
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-creator-wrapper img" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
] );
$this->add_group_control( Group_Control_Border::get_type(), [
'name' => "eael_nft_gallery_created_by_image_border",
'selector' => "{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-creator-wrapper img",
] );
$this->add_control(
'eael_nft_gallery_created_by_image_border_radius',
[
'label' => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-creator-wrapper img' => 'border-radius: {{SIZE}}px;',
],
]
);
$this->add_control( 'eael_nft_gallery_created_by_label', [
'label' => __( 'Label', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
] );
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'eael_nft_gallery_created_by_label_typography',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-creator-wrapper span',
]
);
$this->add_control(
'eael_nft_gallery_created_by_label_text_color',
[
'label' => esc_html__( 'Text Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-creator-wrapper span' => 'color: {{VALUE}};',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_created_by_label_margin',
[
'label' => esc_html__( 'Margin', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-creator-wrapper span' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_created_by_label_padding',
[
'label' => esc_html__( 'Padding', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-creator-wrapper span' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_control( 'eael_nft_gallery_created_by_link', [
'label' => __( 'Link', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
] );
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'eael_nft_gallery_created_by_link_typography',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-creator-wrapper a',
]
);
$this->start_controls_tabs( 'eael_nft_gallery_created_by_controls_tabs' );
$this->start_controls_tab( 'eael_nft_gallery_created_by_control_normal', [
'label' => esc_html__( 'Normal', 'essential-addons-for-elementor-lite' ),
] );
$this->add_control(
'eael_nft_gallery_created_by_link_normal_text_color',
[
'label' => esc_html__( 'Text Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-creator-wrapper a' => 'color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->start_controls_tab( 'eael_nft_gallery_created_by_control_hover', [
'label' => esc_html__( 'Hover', 'essential-addons-for-elementor-lite' ),
] );
$this->add_control(
'eael_nft_gallery_created_by_link_hover_text_color',
[
'label' => esc_html__( 'Text Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-creator-wrapper a:hover' => 'color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_responsive_control(
'eael_nft_gallery_created_by_link_margin',
[
'label' => esc_html__( 'Margin', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-creator-wrapper a' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_created_by_link_padding',
[
'label' => esc_html__( 'Padding', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-creator-wrapper a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->end_controls_section();
/**
* -------------------------------------------
* Tab Style ( Owner Style )
* -------------------------------------------
*/
$this->start_controls_section(
'eael_section_nft_gallery_owned_by_style',
[
'label' => esc_html__( 'Owner', 'essential-addons-for-elementor-lite' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'eael_nft_gallery_show_owner' => 'yes',
],
]
);
$this->add_control( 'eael_nft_gallery_owned_by_image', [
'label' => __( 'Image', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::HEADING,
] );
$this->add_responsive_control( "eael_nft_gallery_owned_by_image_width", [
'label' => esc_html__( 'Width', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [
'px',
'rem',
'%',
],
'range' => [
'px' => [
'min' => 0,
'max' => 1000,
'step' => 5,
],
'rem' => [
'min' => 0,
'max' => 100,
'step' => .5,
],
'%' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-owner-wrapper img" => 'width: {{SIZE}}{{UNIT}};',
],
] );
$this->add_responsive_control( "eael_nft_gallery_owned_by_image_height", [
'label' => esc_html__( 'Height', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [
'px',
'rem',
'%',
],
'range' => [
'px' => [
'min' => 0,
'max' => 1000,
'step' => 5,
],
'rem' => [
'min' => 0,
'max' => 100,
'step' => .5,
],
'%' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-owner-wrapper img" => 'height: {{SIZE}}{{UNIT}};',
],
] );
$this->add_responsive_control( "eael_nft_gallery_owned_by_image_margin", [
'label' => __( 'Margin', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [
'px',
'em',
'%',
],
'selectors' => [
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-owner-wrapper img" => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
] );
$this->add_responsive_control( "eael_nft_gallery_owned_by_image_padding", [
'label' => __( 'Padding', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [
'px',
'em',
'%',
],
'selectors' => [
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-owner-wrapper img" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
] );
$this->add_group_control( Group_Control_Border::get_type(), [
'name' => "eael_nft_gallery_owned_by_image_border",
'selector' => "{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-owner-wrapper img",
] );
$this->add_control(
'eael_nft_gallery_owned_by_image_border_radius',
[
'label' => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-owner-wrapper img' => 'border-radius: {{SIZE}}px;',
],
]
);
$this->add_control( 'eael_nft_gallery_owned_by_label', [
'label' => __( 'Label', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
] );
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'eael_nft_gallery_owned_by_label_typography',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-owner-wrapper span',
]
);
$this->add_control(
'eael_nft_gallery_owned_by_label_text_color',
[
'label' => esc_html__( 'Text Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-owner-wrapper span' => 'color: {{VALUE}};',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_owned_by_label_margin',
[
'label' => esc_html__( 'Margin', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-owner-wrapper span' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_owned_by_label_padding',
[
'label' => esc_html__( 'Padding', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-owner-wrapper span' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_control( 'eael_nft_gallery_owned_by_link', [
'label' => __( 'Link', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
] );
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'eael_nft_gallery_owned_by_link_typography',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-owner-wrapper a',
]
);
$this->start_controls_tabs( 'eael_nft_gallery_owned_by_controls_tabs' );
$this->start_controls_tab( 'eael_nft_gallery_owned_by_control_normal', [
'label' => esc_html__( 'Normal', 'essential-addons-for-elementor-lite' ),
] );
$this->add_control(
'eael_nft_gallery_owned_by_link_normal_text_color',
[
'label' => esc_html__( 'Text Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-owner-wrapper a' => 'color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->start_controls_tab( 'eael_nft_gallery_owned_by_control_hover', [
'label' => esc_html__( 'Hover', 'essential-addons-for-elementor-lite' ),
] );
$this->add_control(
'eael_nft_gallery_owned_by_link_hover_text_color',
[
'label' => esc_html__( 'Text Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-owner-wrapper a:hover' => 'color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_responsive_control(
'eael_nft_gallery_owned_by_link_margin',
[
'label' => esc_html__( 'Margin', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-owner-wrapper a' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_owned_by_link_padding',
[
'label' => esc_html__( 'Padding', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-item .eael-nft-content .eael-nft-owner-wrapper a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->end_controls_section();
/**
* -------------------------------------------
* Tab Style ( Button Style )
* -------------------------------------------
*/
$this->start_controls_section(
'eael_section_nft_gallery_button_style',
[
'label' => esc_html__( 'Button', 'essential-addons-for-elementor-lite' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'eael_nft_gallery_show_button' => 'yes',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'eael_nft_gallery_button_typography',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-button button a',
]
);
$this->add_responsive_control( "eael_nft_gallery_button_width", [
'label' => esc_html__( 'Width', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [
'px',
'rem',
'%',
],
'range' => [
'px' => [
'min' => 0,
'max' => 1000,
'step' => 5,
],
'rem' => [
'min' => 0,
'max' => 100,
'step' => .5,
],
'%' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
"{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-button button" => 'width: {{SIZE}}{{UNIT}};',
],
] );
$this->add_responsive_control(
'eael_nft_gallery_button_alignment',
[
'label' => esc_html__( 'Alignment', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::CHOOSE,
'options' => [
'left' => [
'title' => esc_html__( 'Left', 'essential-addons-for-elementor-lite' ),
'icon' => 'eicon-text-align-left',
],
'center' => [
'title' => esc_html__( 'Center', 'essential-addons-for-elementor-lite' ),
'icon' => 'eicon-text-align-center',
],
'right' => [
'title' => esc_html__( 'Right', 'essential-addons-for-elementor-lite' ),
'icon' => 'eicon-text-align-right',
],
],
'default' => 'left',
]
);
$this->add_responsive_control(
'eael_nft_gallery_button_padding',
[
'label' => esc_html__( 'Button Padding', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-button button a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_control(
'eael_nft_gallery_button_border_radius',
[
'label' => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'max' => 100,
],
],
'default' => [
'size' => 4,
],
'selectors' => [
// '{{WRAPPER}} .eael-nft-gallery-wrapper .preset-2 .eael-nft-button button a' => 'border-radius: {{SIZE}}px;',
// '{{WRAPPER}} .eael-nft-gallery-wrapper .preset-3 .eael-nft-button button a' => 'border-radius: {{SIZE}}px;',
],
'condition' => [
'eael_nft_gallery_style_preset!' => 'preset-1'
],
]
);
$this->add_control(
'eael_nft_gallery_button_border_radius_preset_1',
[
'label' => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .preset-1 .eael-nft-button button a' => 'border-radius: {{SIZE}}px;',
],
'condition' => [
'eael_nft_gallery_style_preset' => 'preset-1'
],
]
);
$this->start_controls_tabs( 'eael_nft_gallery_button_controls_tabs' );
$this->start_controls_tab( 'eael_nft_gallery_button_control_normal', [
'label' => esc_html__( 'Normal', 'essential-addons-for-elementor-lite' ),
] );
$this->add_control(
'eael_nft_gallery_button_normal_text_color',
[
'label' => esc_html__( 'Text Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-button button a' => 'color: {{VALUE}};',
],
]
);
$this->add_control(
'eael_nft_gallery_button_normal_background_color',
[
'label' => esc_html__( 'Background Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'default' => 'rgb(32, 129, 226)',
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-button button a' => 'background: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'eael_nft_gallery_button_normal_border',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-button button a',
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'eael_nft_gallery_button_normal_box_shadow',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-button button a',
]
);
$this->end_controls_tab();
$this->start_controls_tab( 'eael_nft_gallery_button_control_hover', [
'label' => esc_html__( 'Hover', 'essential-addons-for-elementor-lite' ),
] );
$this->add_control(
'eael_nft_gallery_button_hover_text_color',
[
'label' => esc_html__( 'Text Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-button button a:hover' => 'color: {{VALUE}};',
],
]
);
$this->add_control(
'eael_nft_gallery_button_hover_background_color',
[
'label' => esc_html__( 'Background Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'default' => 'rgb(46, 142, 238)',
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-button button a:hover' => 'background: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'eael_nft_gallery_button_hover_border',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-button button a:hover',
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'eael_nft_gallery_button_hover_box_shadow',
'selector' => '{{WRAPPER}} .eael-nft-gallery-wrapper .eael-nft-gallery-items .eael-nft-button button a:hover',
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->end_controls_section();
/**
* Style Tab: Load More Button
* -------------------------------------------------
*/
$this->start_controls_section(
'eael_section_nft_gallery_load_more_style',
[
'label' => __( 'Load More Button', 'essential-addons-for-elementor-lite' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_text!' => '',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_load_more_margin_top',
[
'label' => __( 'Top Spacing', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 0,
'max' => 80,
'step' => 1,
],
],
'size_units' => '',
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-load-more' => 'margin-top: {{SIZE}}{{UNIT}};',
],
]
);
$this->start_controls_tabs( 'tabs_eael_nft_gallery_load_more_button_style' );
$this->start_controls_tab(
'tab_nft_gallery_load_more_button_normal',
[
'label' => __( 'Normal', 'essential-addons-for-elementor-lite' ),
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_text!' => '',
],
]
);
$this->add_control(
'eael_nft_gallery_load_more_bg_color_normal',
[
'label' => __( 'Background Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'default' => '#29D8D8',
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-load-more' => 'background-color: {{VALUE}}',
],
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_text!' => '',
],
]
);
$this->add_control(
'eael_nft_gallery_load_more_text_color_normal',
[
'label' => __( 'Text Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'default' => '#fff',
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-load-more' => 'color: {{VALUE}}',
],
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_text!' => '',
],
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'eael_nft_gallery_load_more_border_normal',
'label' => __( 'Border', 'essential-addons-for-elementor-lite' ),
'placeholder' => '1px',
'default' => '1px',
'selector' => '{{WRAPPER}} .eael-nft-gallery-load-more',
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_text!' => '',
],
]
);
$this->add_control(
'eael_nft_gallery_load_more_border_radius',
[
'label' => __( 'Border Radius', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-load-more' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_text!' => '',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'eael_nft_gallery_load_more_typography',
'label' => __( 'Typography', 'essential-addons-for-elementor-lite' ),
'global' => [
'default' => Global_Typography::TYPOGRAPHY_TEXT,
],
'selector' => '{{WRAPPER}} .eael-nft-gallery-load-more .eael-nft-gallery-load-more-text',
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_text!' => '',
],
]
);
$this->add_control(
'eael_nft_gallery_load_more_icon_size',
[
'label' => __( 'Icon Size', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 15,
],
'range' => [
'px' => [
'min' => 20,
'max' => 500,
'step' => 1,
]
],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-load-more .eael-nft-gallery-load-more-icon' => 'font-size: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .eael-nft-gallery-load-more img.eael-nft-gallery-load-more-icon' => 'height: {{SIZE}}{{UNIT}}; width: {{SIZE}}{{UNIT}};'
]
]
);
$this->add_control(
'eael_nft_gallery_load_more_icon_spacing',
[
'label' => __( 'Icon Spacing', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 0,
'max' => 50
]
],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-load-more .nft-gallery-load-more-icon-left' => 'margin-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .eael-nft-gallery-load-more .nft-gallery-load-more-icon-right' => 'margin-left: {{SIZE}}{{UNIT}};',
]
]
);
$this->add_responsive_control(
'eael_nft_gallery_load_more_padding',
[
'label' => __( 'Padding', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em', '%' ],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-load-more' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_text!' => '',
],
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'eael_nft_gallery_load_more_box_shadow',
'selector' => '{{WRAPPER}} .eael-nft-gallery-load-more',
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_text!' => '',
],
]
);
$this->add_control(
'eael_nft_gallery_load_more_icon_heading',
[
'label' => __( 'Button Icon', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_icon_new!' => '',
],
]
);
$this->add_responsive_control(
'eael_nft_gallery_load_more_icon_margin',
[
'label' => __( 'Margin', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%' ],
'placeholder' => [
'top' => '',
'right' => '',
'bottom' => '',
'left' => '',
],
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-load-more .eael-nft-gallery-load-more-icon' => 'margin-top: {{TOP}}{{UNIT}}; margin-left: {{LEFT}}{{UNIT}}; margin-right: {{RIGHT}}{{UNIT}}; margin-bottom: {{BOTTOM}}{{UNIT}};',
],
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_icon_new!' => '',
],
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'tab_nft_gallery_load_more_button_hover',
[
'label' => __( 'Hover', 'essential-addons-for-elementor-lite' ),
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_text!' => '',
],
]
);
$this->add_control(
'nft_gallery_load_more_bg_color_hover',
[
'label' => __( 'Background Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-load-more:hover' => 'background-color: {{VALUE}}',
],
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_text!' => '',
],
]
);
$this->add_control(
'nft_gallery_load_more_text_color_hover',
[
'label' => __( 'Text Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-load-more:hover' => 'color: {{VALUE}}',
],
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_text!' => '',
],
]
);
$this->add_control(
'nft_gallery_load_more_border_color_hover',
[
'label' => __( 'Border Color', 'essential-addons-for-elementor-lite' ),
'type' => Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}} .eael-nft-gallery-load-more:hover' => 'border-color: {{VALUE}}',
],
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_text!' => '',
],
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'nft_gallery_load_more_box_shadow_hover',
'selector' => '{{WRAPPER}} .eael-nft-gallery-load-more:hover',
'condition' => [
'eael_nft_gallery_pagination' => 'yes',
'eael_nft_gallery_load_more_text!' => '',
],
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->end_controls_section();
}
public function print_nft_gallery_item_grid($nft_gallery, $item){
$item_formatted = $item;
$pagination_class = ! empty( $item_formatted['pagination_class'] ) ? $item_formatted['pagination_class'] : '';
$unit_convert = ! empty( $item_formatted['unit_convert'] ) ? $item_formatted['unit_convert'] : 1;
?>
<div class="eael-nft-item <?php echo esc_attr( $pagination_class ); ?> ">
<!-- Chain -->
<?php if( $nft_gallery['show_chain'] ) : ?>
<div class="eael-nft-chain">
<button class="eael-nft-chain-button">
<svg fill="white" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 24px; height: 20px;"><path d="M18.527 12.2062L12 16.1938L5.46875 12.2062L12 1L18.527 12.2062ZM12 17.4742L5.46875 13.4867L12 23L18.5312 13.4867L12 17.4742V17.4742Z" fill="white"></path></svg>
</button>
</div>
<?php endif; ?>
<!-- Thumbnail -->
<div class="eael-nft-thumbnail">
<?php
if ( $nft_gallery['show_thumbnail'] ) {
if ( ! empty( $item_formatted['thumbnail'] ) ) {
if ( $nft_gallery['thumbnail_clickable'] && 'preset-1' === $nft_gallery['preset'] ) {
printf( '<a href="%s" target="_blank" >', esc_url( $item_formatted['view_details_link'] ) );
}
printf( '<img src="%s" alt="%s">', esc_attr( $item_formatted['thumbnail'] ), esc_attr__( 'NFT Gallery', 'essential-addons-for-elementor-lite' ) );
if ( $nft_gallery['thumbnail_clickable'] && 'preset-1' === $nft_gallery['preset'] ) {
printf( '</a>' );
}
}
}
?>
</div>
<div class="eael-nft-main-content">
<!-- Content -->
<div class="eael-nft-content">
<!-- Title -->
<?php if( $nft_gallery['show_title'] ) : ?>
<h3 class="eael-nft-title"><?php printf('%s', esc_html( $item_formatted['title'] ) ); ?></h3>
<?php endif; ?>
<!-- Current Price -->
<?php if( ! empty( $nft_gallery['show_current_price'] ) ) : ?>
<div class="eael-nft-current-price-wrapper">
<?php if( floatval($item_formatted['current_price']) > 0 ): ?>
<p class="eael-nft-current-price"><?php printf('%s %s', floatval( $item_formatted['current_price'] / $unit_convert ), esc_html( $item_formatted['currency'] ) ); ?></p>
<?php endif; ?>
</div>
<?php endif; ?>
<!-- Creator -->
<?php if( 'grid' === $nft_gallery['layout'] && 'preset-1' === $nft_gallery['preset'] && $nft_gallery['show_creator'] && $item_formatted['show_created_by_content'] ) : ?>
<div class="eael-nft-creator-wrapper">
<div class="eael-nft-creator-img">
<?php
if (!empty($item_formatted['creator_thumbnail'])) {
printf('<img src="%s" alt="%s">', esc_url($item_formatted['creator_thumbnail']), esc_attr__('EA NFT Creator Thumbnail', 'essential-addons-for-elementor-lite'));
if($item_formatted['creator_verified']) {
printf('<a class="%s" href="%s" target="_blank"><svg aria-label="verified-icon" class="sc-9c65691d-0 ghqJwW sc-3bcbbab4-0 iuhSVk" fill="none" viewBox="0 0 30 30"><path d="M13.474 2.80108C14.2729 1.85822 15.7271 1.85822 16.526 2.80108L17.4886 3.9373C17.9785 4.51548 18.753 4.76715 19.4892 4.58733L20.9358 4.23394C22.1363 3.94069 23.3128 4.79547 23.4049 6.0278L23.5158 7.51286C23.5723 8.26854 24.051 8.92742 24.7522 9.21463L26.1303 9.77906C27.2739 10.2474 27.7233 11.6305 27.0734 12.6816L26.2903 13.9482C25.8918 14.5928 25.8918 15.4072 26.2903 16.0518L27.0734 17.3184C27.7233 18.3695 27.2739 19.7526 26.1303 20.2209L24.7522 20.7854C24.051 21.0726 23.5723 21.7315 23.5158 22.4871L23.4049 23.9722C23.3128 25.2045 22.1363 26.0593 20.9358 25.7661L19.4892 25.4127C18.753 25.2328 17.9785 25.4845 17.4886 26.0627L16.526 27.1989C15.7271 28.1418 14.2729 28.1418 13.474 27.1989L12.5114 26.0627C12.0215 25.4845 11.247 25.2328 10.5108 25.4127L9.06418 25.7661C7.86371 26.0593 6.6872 25.2045 6.59513 23.9722L6.48419 22.4871C6.42773 21.7315 5.94903 21.0726 5.24777 20.7854L3.86969 20.2209C2.72612 19.7526 2.27673 18.3695 2.9266 17.3184L3.70973 16.0518C4.10824 15.4072 4.10824 14.5928 3.70973 13.9482L2.9266 12.6816C2.27673 11.6305 2.72612 10.2474 3.86969 9.77906L5.24777 9.21463C5.94903 8.92742 6.42773 8.26854 6.48419 7.51286L6.59513 6.0278C6.6872 4.79547 7.86371 3.94069 9.06418 4.23394L10.5108 4.58733C11.247 4.76715 12.0215 4.51548 12.5114 3.9373L13.474 2.80108Z" class="sc-9c65691d-1 jiZrqV"></path><path d="M13.5 17.625L10.875 15L10 15.875L13.5 19.375L21 11.875L20.125 11L13.5 17.625Z" fill="white" stroke="white"></path></svg></a>',
esc_attr('creator-verified-icon'), esc_url($item_formatted['creator_thumbnail']));
}
} else {
// default creator svg
}
?>
</div>
<div class="eael-nft-created-by">
<div><span><?php printf('%s', esc_html( $nft_gallery['created_by_label'] ) ); ?> </span></div>
<div><?php printf('<a target="_blank" href="%s">%s</a>', esc_attr( $item_formatted['created_by_link'] ), esc_html( $item_formatted['created_by_link_text'] ) ); ?></div>
</div>
</div>
<?php endif; ?>
<!-- Owner -->
<?php if( $nft_gallery['show_owner'] && $item_formatted['show_owned_by_content'] ) : ?>
<div class="eael-nft-owner-wrapper">
<div class="eael-nft-owner-img">
<?php
if (!empty($item_formatted['owner_thumbnail'])) {
printf('<img src="%s" alt="%s">', esc_url( $item_formatted['owner_thumbnail'] ), esc_attr__('EA NFT Owner Thumbnail', 'essential-addons-for-elementor-lite') );
if($item_formatted['owner_verified']) {
printf('<a class="%s" href="%s" target="_blank"><svg aria-label="verified-icon" class="sc-9c65691d-0 ghqJwW sc-3bcbbab4-0 iuhSVk" fill="none" viewBox="0 0 30 30"><path d="M13.474 2.80108C14.2729 1.85822 15.7271 1.85822 16.526 2.80108L17.4886 3.9373C17.9785 4.51548 18.753 4.76715 19.4892 4.58733L20.9358 4.23394C22.1363 3.94069 23.3128 4.79547 23.4049 6.0278L23.5158 7.51286C23.5723 8.26854 24.051 8.92742 24.7522 9.21463L26.1303 9.77906C27.2739 10.2474 27.7233 11.6305 27.0734 12.6816L26.2903 13.9482C25.8918 14.5928 25.8918 15.4072 26.2903 16.0518L27.0734 17.3184C27.7233 18.3695 27.2739 19.7526 26.1303 20.2209L24.7522 20.7854C24.051 21.0726 23.5723 21.7315 23.5158 22.4871L23.4049 23.9722C23.3128 25.2045 22.1363 26.0593 20.9358 25.7661L19.4892 25.4127C18.753 25.2328 17.9785 25.4845 17.4886 26.0627L16.526 27.1989C15.7271 28.1418 14.2729 28.1418 13.474 27.1989L12.5114 26.0627C12.0215 25.4845 11.247 25.2328 10.5108 25.4127L9.06418 25.7661C7.86371 26.0593 6.6872 25.2045 6.59513 23.9722L6.48419 22.4871C6.42773 21.7315 5.94903 21.0726 5.24777 20.7854L3.86969 20.2209C2.72612 19.7526 2.27673 18.3695 2.9266 17.3184L3.70973 16.0518C4.10824 15.4072 4.10824 14.5928 3.70973 13.9482L2.9266 12.6816C2.27673 11.6305 2.72612 10.2474 3.86969 9.77906L5.24777 9.21463C5.94903 8.92742 6.42773 8.26854 6.48419 7.51286L6.59513 6.0278C6.6872 4.79547 7.86371 3.94069 9.06418 4.23394L10.5108 4.58733C11.247 4.76715 12.0215 4.51548 12.5114 3.9373L13.474 2.80108Z" class="sc-9c65691d-1 jiZrqV"></path><path d="M13.5 17.625L10.875 15L10 15.875L13.5 19.375L21 11.875L20.125 11L13.5 17.625Z" fill="white" stroke="white"></path></svg></a>',
esc_attr('owner-verified-icon'), esc_url($item_formatted['owner_thumbnail']));
}
} else {
// default owner svg
}
?>
</div>
<div class="eael-nft-owned-by">
<div><span><?php printf('%s', esc_html( $nft_gallery['owned_by_label'] ) ); ?> </span></div>
<div><?php printf('<a target="_blank" href="%s">%s</a>', esc_url( $item_formatted['owned_by_link'] ), esc_html( $item_formatted['owned_by_link_text'] ) ); ?></div>
</div>
</div>
<?php endif; ?>
<!-- Last Sale / Ends In -->
<?php if( ! empty( $nft_gallery['show_last_sale_ends_in'] ) ) : ?>
<div class="eael-nft-last-sale-wrapper">
<?php if( intval($item_formatted['last_sale']) > 0 ): ?>
<p class="eael-nft-last-sale"><?php printf('<span class="%s">%s</span> <span class="%s">%s %s</span>', esc_attr('eael-nft-last-sale-text') , esc_html__($nft_gallery['last_sale_label'], 'essential-addons-for-elementor-lite'), esc_attr('eael-nft-last-sale-price'), floatval($item_formatted['last_sale'] / $unit_convert ), esc_html( $item_formatted['currency'] )); ?></p>
<?php elseif( ! empty($item_formatted['ends_in']) ): ?>
<p class="eael-nft-ends-in"><?php printf('<span class="%s">%s</span> <span class="%s">%s</span>', esc_attr('eael-nft-ends-in-text') , esc_html__($nft_gallery['ends_in_label'], 'essential-addons-for-elementor-lite'), esc_attr('eael-nft-ends-in-time'), $item_formatted['ends_in'] ); ?></p>
<?php endif; ?>
</div>
<?php endif; ?>
</div>
<!-- Button -->
<div class="eael-nft-button">
<?php if( $nft_gallery['show_button'] ) : ?>
<button <?php echo $this->get_render_attribute_string('eael-nft-gallery-button'); ?>>
<?php printf('<a target="_blank" href="%s">%s</a>', esc_attr( $item_formatted['view_details_link'] ), esc_html( $nft_gallery['view_details_text'] ) ) ?>
</button>
<?php endif; ?>
</div>
</div>
<?php
if ( $nft_gallery['thumbnail_clickable'] && 'preset-2' === $nft_gallery['preset'] ) {
printf( '<a href="%s" target="_blank" ></a>', esc_url( $item_formatted['view_details_link'] ) );
}
?>
</div>
<?php
}
public function print_nft_gallery_item_list($nft_gallery, $item){
$item_formatted = $item;
$pagination_class = ! empty( $item_formatted['pagination_class'] ) ? $item_formatted['pagination_class'] : '';
$unit_convert = ! empty( $item_formatted['unit_convert'] ) ? $item_formatted['unit_convert'] : 1;
$item_formatted['view_details_link'] = ! empty( $item_formatted['view_details_link'] ) ? $item_formatted['view_details_link'] : '#';
?>
<div class="eael-nft-item <?php echo esc_attr( $pagination_class ); ?> ">
<div class="eael-nft-main-content">
<!-- Content -->
<div class="eael-nft-content eael-nft-grid-container">
<!-- Thumbnail -->
<div class="eael-nft-list-thumbnail eael-nft-grid-item">
<?php
if ( $nft_gallery['show_thumbnail'] ) {
if ( ! empty( $item_formatted['thumbnail'] ) ) {
if ( $nft_gallery['thumbnail_clickable'] ) {
printf( '<a href="%s" target="_blank" >', esc_url( $item_formatted['view_details_link'] ) );
}
printf( '<img src="%s" alt="%s">', esc_attr( $item_formatted['thumbnail'] ), esc_attr__( 'NFT Gallery', 'essential-addons-for-elementor-lite' ) );
if ( $nft_gallery['thumbnail_clickable'] ) {
printf( '</a>' );
}
}
}
?>
</div>
<!-- Title -->
<?php if( $nft_gallery['show_title'] ) : ?>
<div class="eael-nft-title-wrapper eael-nft-grid-item">
<h3 class="eael-nft-title"><?php printf('<a href="%s" target="_blank">%s</a>', esc_url( $item_formatted['view_details_link'] ), esc_html( $item_formatted['title'] ) ); ?></h3>
</div>
<?php endif; ?>
<!-- Current Price -->
<?php if( ! empty( $nft_gallery['show_current_price'] ) ) : ?>
<div class="eael-nft-current-price-wrapper eael-nft-grid-item">
<?php if( floatval($item_formatted['current_price']) > 0 ): ?>
<p class="eael-nft-current-price"><?php printf('%s %s', floatval( $item_formatted['current_price'] / $unit_convert ), esc_html( $item_formatted['currency'] ) ); ?></p>
<?php endif; ?>
</div>
<?php endif; ?>
<!-- Last Sale / Ends In -->
<?php if( ! empty( $nft_gallery['show_last_sale_ends_in'] ) ) : ?>
<div class="eael-nft-last-sale-wrapper eael-nft-grid-item">
<?php if( intval($item_formatted['last_sale']) > 0 ): ?>
<p class="eael-nft-last-sale"><?php printf('<span class="%s">%s</span> <span class="%s">%s %s</span>', esc_attr('eael-nft-last-sale-text') , esc_html__($nft_gallery['last_sale_label'], 'essential-addons-for-elementor-lite'), esc_attr('eael-nft-last-sale-price'), floatval($item_formatted['last_sale'] / $unit_convert ), esc_html( $item_formatted['currency'] )); ?></p>
<?php elseif( ! empty($item_formatted['ends_in']) ): ?>
<p class="eael-nft-ends-in"><?php printf('<span class="%s">%s</span> <span class="%s">%s</span>', esc_attr('eael-nft-ends-in-text') , esc_html__($nft_gallery['ends_in_label'], 'essential-addons-for-elementor-lite'), esc_attr('eael-nft-ends-in-time'), $item_formatted['ends_in'] ); ?></p>
<?php endif; ?>
</div>
<?php endif; ?>
<!-- Creator -->
<?php if( $nft_gallery['show_creator'] && $item_formatted['show_created_by_content'] ) : ?>
<div class="eael-nft-creator-wrapper eael-nft-grid-item">
<div class="eael-nft-creator-img">
<?php
if (!empty($item_formatted['creator_thumbnail'])) {
printf('<img src="%s" alt="%s">', esc_url($item_formatted['creator_thumbnail']), esc_attr__('EA NFT Creator Thumbnail', 'essential-addons-for-elementor-lite'));
if($item_formatted['creator_verified']) {
printf('<a class="%s" href="%s" target="_blank"><svg aria-label="verified-icon" class="sc-9c65691d-0 ghqJwW sc-3bcbbab4-0 iuhSVk" fill="none" viewBox="0 0 30 30"><path d="M13.474 2.80108C14.2729 1.85822 15.7271 1.85822 16.526 2.80108L17.4886 3.9373C17.9785 4.51548 18.753 4.76715 19.4892 4.58733L20.9358 4.23394C22.1363 3.94069 23.3128 4.79547 23.4049 6.0278L23.5158 7.51286C23.5723 8.26854 24.051 8.92742 24.7522 9.21463L26.1303 9.77906C27.2739 10.2474 27.7233 11.6305 27.0734 12.6816L26.2903 13.9482C25.8918 14.5928 25.8918 15.4072 26.2903 16.0518L27.0734 17.3184C27.7233 18.3695 27.2739 19.7526 26.1303 20.2209L24.7522 20.7854C24.051 21.0726 23.5723 21.7315 23.5158 22.4871L23.4049 23.9722C23.3128 25.2045 22.1363 26.0593 20.9358 25.7661L19.4892 25.4127C18.753 25.2328 17.9785 25.4845 17.4886 26.0627L16.526 27.1989C15.7271 28.1418 14.2729 28.1418 13.474 27.1989L12.5114 26.0627C12.0215 25.4845 11.247 25.2328 10.5108 25.4127L9.06418 25.7661C7.86371 26.0593 6.6872 25.2045 6.59513 23.9722L6.48419 22.4871C6.42773 21.7315 5.94903 21.0726 5.24777 20.7854L3.86969 20.2209C2.72612 19.7526 2.27673 18.3695 2.9266 17.3184L3.70973 16.0518C4.10824 15.4072 4.10824 14.5928 3.70973 13.9482L2.9266 12.6816C2.27673 11.6305 2.72612 10.2474 3.86969 9.77906L5.24777 9.21463C5.94903 8.92742 6.42773 8.26854 6.48419 7.51286L6.59513 6.0278C6.6872 4.79547 7.86371 3.94069 9.06418 4.23394L10.5108 4.58733C11.247 4.76715 12.0215 4.51548 12.5114 3.9373L13.474 2.80108Z" class="sc-9c65691d-1 jiZrqV"></path><path d="M13.5 17.625L10.875 15L10 15.875L13.5 19.375L21 11.875L20.125 11L13.5 17.625Z" fill="white" stroke="white"></path></svg></a>',
esc_attr('creator-verified-icon'), esc_url($item_formatted['creator_thumbnail']));
}
} else {
// default creator svg
}
?>
</div>
<div class="eael-nft-created-by">
<div><span><?php printf('%s', esc_html( $nft_gallery['created_by_label'] ) ); ?> </span></div>
<div><?php printf('<a target="_blank" href="%s">%s</a>', esc_attr( $item_formatted['created_by_link'] ), esc_html( $item_formatted['created_by_link_text'] ) ); ?></div>
</div>
</div>
<?php endif; ?>
</div>
</div>
</div>
<?php
}
public function print_nft_gallery( $opensea_items ) {
$settings = $this->get_settings();
ob_start();
$nft_gallery = [];
$items = isset( $opensea_items['items'] ) ? $opensea_items['items'] : false;
$error_message = ! empty( $opensea_items['error_message'] ) ? $opensea_items['error_message'] : "";
$post_per_page = ! empty( $settings['eael_nft_gallery_posts_per_page'] ) ? absint( $settings['eael_nft_gallery_posts_per_page'] ) : 6;
$post_limit = ! empty( $settings['eael_nft_gallery_opensea_item_limit'] ) ? $settings['eael_nft_gallery_opensea_item_limit'] : 9;
$no_more_items_text = Helper::eael_wp_kses( $settings['eael_nft_gallery_nomore_items_text'] );
$counter = 0;
$current_page = 1;
$nft_gallery['source'] = ! empty( $settings['eael_nft_gallery_sources'] ) ? esc_html( $settings['eael_nft_gallery_sources'] ) : 'opensea';
$nft_gallery['layout'] = ! empty( $settings['eael_nft_gallery_items_layout'] ) ? $settings['eael_nft_gallery_items_layout'] : 'grid';
$nft_gallery['opensea_type'] = ! empty( $settings['eael_nft_gallery_opensea_type'] ) ? esc_html( $settings['eael_nft_gallery_opensea_type'] ) : 'assets';
$nft_gallery['preset'] = ! empty( $settings['eael_nft_gallery_style_preset'] ) && 'grid' === $nft_gallery['layout'] ? $settings['eael_nft_gallery_style_preset'] : 'preset-1';
$nft_gallery['owned_by_label'] = ! empty( $settings['eael_nft_gallery_content_owned_by_label'] ) ? $settings['eael_nft_gallery_content_owned_by_label'] : __( 'Owner', 'essential-addons-for-elementor-lite' );
$nft_gallery['created_by_label'] = ! empty( $settings['eael_nft_gallery_content_created_by_label'] ) ? $settings['eael_nft_gallery_content_created_by_label'] : __( 'Owner', 'essential-addons-for-elementor-lite' );
$nft_gallery['view_details_text'] = ! empty( $settings['eael_nft_gallery_content_view_details_label'] ) ? $settings['eael_nft_gallery_content_view_details_label'] : __( 'View Details', 'essential-addons-for-elementor-lite' );
$nft_gallery['api_url'] = 'opensea' === $nft_gallery['source'] ? 'https://opensea.io' : '';
$nft_gallery['show_thumbnail'] = ! empty( $settings['eael_nft_gallery_show_image'] ) && 'yes' === $settings['eael_nft_gallery_show_image'];
$nft_gallery['thumbnail_clickable'] = ! empty( $settings['eael_nft_gallery_image_clickable'] ) && 'yes' === $settings['eael_nft_gallery_image_clickable'];
$nft_gallery['show_title'] = ! empty( $settings['eael_nft_gallery_show_title'] ) && 'yes' === $settings['eael_nft_gallery_show_title'];
$nft_gallery['show_owner'] = ! empty( $settings['eael_nft_gallery_show_owner'] ) && 'yes' === $settings['eael_nft_gallery_show_owner'];
$nft_gallery['show_creator'] = ! empty( $settings['eael_nft_gallery_show_creator'] ) && 'yes' === $settings['eael_nft_gallery_show_creator'];
$nft_gallery['show_current_price'] = ! empty( $settings['eael_nft_gallery_show_current_price'] ) && 'yes' === $settings['eael_nft_gallery_show_current_price'];
$nft_gallery['show_last_sale_ends_in'] = ! empty( $settings['eael_nft_gallery_show_last_sale_ends_in'] ) && 'yes' === $settings['eael_nft_gallery_show_last_sale_ends_in'];
$nft_gallery['show_button'] = ! empty( $settings['eael_nft_gallery_show_button'] ) && 'yes' === $settings['eael_nft_gallery_show_button'];
$nft_gallery['show_chain'] = ! empty( $settings['eael_nft_gallery_show_chain'] ) && 'yes' === $settings['eael_nft_gallery_show_chain'];
$nft_gallery['button_alignment_class'] = ! empty( $settings['eael_nft_gallery_button_alignment'] ) ? 'eael-nft-gallery-button-align-' . $settings['eael_nft_gallery_button_alignment'] : ' ';
$nft_gallery['last_sale_label'] = ! empty( $settings['eael_nft_gallery_content_last_sale_label'] ) ? $settings['eael_nft_gallery_content_last_sale_label'] : 'Last sale:';
$nft_gallery['ends_in_label'] = ! empty( $settings['eael_nft_gallery_content_ends_in_label'] ) ? $settings['eael_nft_gallery_content_ends_in_label'] : 'Ends in:';
$this->add_render_attribute( 'eael-nft-gallery-wrapper', [
'class' => [
'eael-nft-gallery-wrapper',
'eael-nft-gallery-' . $this->get_id(),
'clearfix',
],
'data-posts-per-page' => $post_per_page,
'data-total-posts' => $post_limit,
'data-nomore-item-text' => $no_more_items_text,
'data-next-page' => 2,
] );
$this->add_render_attribute(
'eael-nft-gallery-items',
[
'id' => 'eael-nft-gallery-' . esc_attr( $this->get_id() ),
'class' => [
'eael-nft-gallery-items',
'eael-nft-' . esc_attr( $nft_gallery['layout'] ),
esc_attr( $nft_gallery['preset'] ),
],
]
);
$this->add_render_attribute(
'eael-nft-gallery-button',
[
'class' => [
esc_attr( $nft_gallery['button_alignment_class'] ),
],
]
);
?>
<div <?php echo $this->get_render_attribute_string('eael-nft-gallery-wrapper') ?> >
<?php if ( is_array( $items ) && count( $items ) ) : ?>
<div <?php echo $this->get_render_attribute_string('eael-nft-gallery-items'); ?> >
<?php foreach ($items as $item) :
$counter++;
if ($post_per_page > 0) {
$current_page = ceil($counter / $post_per_page);
}
$show_pagination = ! empty($settings['eael_nft_gallery_pagination']) && 'yes' === $settings['eael_nft_gallery_pagination'] ? true : false;
if($show_pagination){
$pagination_class = ' page-' . $current_page;
$pagination_class .= 1 === intval( $current_page ) ? ' eael-d-block' : ' eael-d-none';
} else {
$pagination_class = 'page-1 eael-d-block';
}
if ($counter == count($items)) {
$pagination_class .= ' eael-last-nft-gallery-item';
}
$item_formatted['thumbnail'] = ! empty( $item->image_url ) ? $item->image_url : EAEL_PLUGIN_URL . '/assets/front-end/img/flexia-preview.jpg';
$item_formatted['title'] = ! empty( $item->name ) ? $item->name : '';
$item_formatted['creator_thumbnail'] = ! empty( $item->creator->profile_img_url ) ? $item->creator->profile_img_url : '';
$item_formatted['creator_verified'] = ! empty( $item->creator->config ) && 'verified' === $item->creator->config ? true : false;
$item_formatted['created_by_link'] = ! empty( $item->creator->address ) ? esc_url( $nft_gallery['api_url'] . '/' . $item->creator->address ) : '#';
$item_formatted['created_by_link_text'] = ! empty( $item->creator->user ) && ! empty( $item->creator->user->username ) ? esc_html( $item->creator->user->username ) : '';
$item_formatted['show_created_by_content'] = ! empty( $item_formatted['created_by_link_text'] ) && 'NullAddress' !== $item_formatted['created_by_link_text'];
$item_formatted['owner_thumbnail'] = ! empty( $item->owner ) && ! empty( $item->owner->profile_img_url ) ? $item->owner->profile_img_url : '';
$item_formatted['owner_verified'] = ! empty( $item->owner->config ) && 'verified' === $item->owner->config ? true : false;
$item_formatted['owned_by_link'] = ! empty( $item->owner ) && ! empty( $item->owner->address ) ? esc_url( $nft_gallery['api_url'] . '/' . $item->owner->address ) : '#';
$item_formatted['owned_by_link_text'] = ! empty( $item->owner ) && ! empty( $item->owner->user ) && ! empty( $item->owner->user->username ) ? esc_html( $item->owner->user->username ) : '';
$item_formatted['show_owned_by_content'] = ! empty( $item_formatted['owned_by_link_text'] ) && 'NullAddress' !== $item_formatted['owned_by_link_text'];
$item_formatted['view_details_link'] = ! empty( $item->permalink ) ? $item->permalink : '#';
if( 'collections' === $nft_gallery['opensea_type'] ){
$item_formatted['view_details_link'] = ! empty( $item->slug ) ? esc_url( "{$nft_gallery['api_url']}/collection/{$item->slug}" ) : '#';
}
$item_formatted['current_price'] = ! empty( $item->seaport_sell_orders[0]->current_price ) ? $item->seaport_sell_orders[0]->current_price : 0;
$item_formatted['last_sale'] = ! empty( $item->last_sale->total_price ) ? $item->last_sale->total_price : 0;
$item_formatted['currency'] = 'ETH';
$item_formatted['pagination_class'] = $pagination_class;
$item_formatted['unit_convert'] = 1000000000000000000;
$datediff_in_days = $datediff_in_hours = 0;
$item_formatted['ends_in'] = '';
if( ! empty( $item->seaport_sell_orders[0]->expiration_time ) ){
$expiration_time = $item->seaport_sell_orders[0]->expiration_time;
$now = time();
$datediff_strtotime = $expiration_time > $now ? $item->seaport_sell_orders[0]->expiration_time - $now : 0;
$datediff_in_days = round($datediff_strtotime / (60 * 60 * 24));
$datediff_in_hours = round($datediff_strtotime / (60 * 60));
}
if( ! empty( $datediff_in_days ) || ! empty( $datediff_in_hours ) ){
$item_formatted['ends_in'] = $datediff_in_days . __(' days', 'essential-addons-for-elementor-lite');
$item_formatted['ends_in'] = $datediff_in_days < 1 ? $datediff_in_hours . __(' hours', 'essential-addons-for-elementor-lite') : $item_formatted['ends_in'];
}
'grid' === $nft_gallery['layout'] ? $this->print_nft_gallery_item_grid( $nft_gallery, $item_formatted ) : $this->print_nft_gallery_item_list( $nft_gallery, $item_formatted );
endforeach; ?>
<!-- /.column -->
</div>
<?php else: ?>
<?php printf( '<div class="eael-nft-gallery-error-message">%s</div>', esc_html( $error_message ) ); ?>
<?php endif; ?>
</div>
<div class="clearfix">
<?php $this->render_loadmore_button() ?>
</div>
<?php
echo ob_get_clean();
}
/**
* API Call to Get NFT Data
*/
public function fetch_nft_gallery_from_api() {
$settings = $this->get_settings();
$response = [];
$nft_gallery = [];
$nft_gallery['source'] = ! empty( $settings['eael_nft_gallery_sources'] ) ? esc_html( $settings['eael_nft_gallery_sources'] ) : 'opensea';
$nft_gallery['api_key'] = ! empty( $settings['eael_nft_gallery_source_key'] ) ? esc_html( $settings['eael_nft_gallery_source_key'] ) : '';
$nft_gallery['opensea_type'] = ! empty( $settings['eael_nft_gallery_opensea_type'] ) ? esc_html( $settings['eael_nft_gallery_opensea_type'] ) : 'assets';
$nft_gallery['opensea_filterby'] = ! empty( $settings['eael_nft_gallery_opensea_filterby'] ) ? esc_html( $settings['eael_nft_gallery_opensea_filterby'] ) : 'none';
$nft_gallery['order'] = ! empty( $settings['eael_nft_gallery_opensea_order'] ) ? esc_html( $settings['eael_nft_gallery_opensea_order'] ) : 'desc';
$nft_gallery['item_limit'] = ! empty( $settings['eael_nft_gallery_opensea_item_limit'] ) ? esc_html( $settings['eael_nft_gallery_opensea_item_limit'] ) : 9;
$expiration = ! empty( $settings['eael_nft_gallery_opensea_data_cache_time'] ) ? absint( $settings['eael_nft_gallery_opensea_data_cache_time'] ) * MINUTE_IN_SECONDS : DAY_IN_SECONDS;
$md5 = md5( $nft_gallery['opensea_type'] . $nft_gallery['opensea_filterby'] . $settings['eael_nft_gallery_opensea_filterby_slug'] . $settings['eael_nft_gallery_opensea_filterby_wallet'] . $nft_gallery['item_limit'] . $nft_gallery['order'] . $this->get_id() );
$cache_key = "{$nft_gallery['source']}_{$expiration}_{$md5}_nftg_cache";
$items = get_transient( $cache_key );
$error_message = '';
if ( false === $items && 'opensea' === $nft_gallery['source'] ) {
$nft_gallery['filterby_slug'] = ! empty( $settings['eael_nft_gallery_opensea_filterby_slug'] ) ? $settings['eael_nft_gallery_opensea_filterby_slug'] : '';
$nft_gallery['filterby_wallet'] = ! empty( $settings['eael_nft_gallery_opensea_filterby_wallet'] ) ? $settings['eael_nft_gallery_opensea_filterby_wallet'] : '';
$url = "https://api.opensea.io/api/v1";
$param = array();
if ( 'collections' === $nft_gallery['opensea_type'] ) {
$url .= "/collections";
$args = array(
'limit' => $nft_gallery['item_limit'],
'offset' => 0,
);
if ( ! empty( $nft_gallery['filterby_wallet'] ) ) {
$args['asset_owner'] = sanitize_text_field( $nft_gallery['filterby_wallet'] );
}
$param = array_merge( $param, $args );
} elseif ( 'assets' === $nft_gallery['opensea_type'] ) {
$url .= "/assets";
$args = array(
'include_orders' => true,
'limit' => $nft_gallery['item_limit'],
'order_direction' => $nft_gallery['order'],
);
if ( ! empty( $nft_gallery['filterby_slug'] ) && 'collection-slug' === $nft_gallery['opensea_filterby'] ) {
$args['collection_slug'] = sanitize_text_field( $nft_gallery['filterby_slug'] );
}
if ( ! empty( $nft_gallery['filterby_wallet'] ) && 'wallet-address' === $nft_gallery['opensea_filterby'] ) {
$args['owner'] = sanitize_text_field( $nft_gallery['filterby_wallet'] );
}
$param = array_merge( $param, $args );
} else {
$error_message = esc_html__( 'Please provide a valid Type!', 'essential-addons-for-elementor-lite' );
}
$headers = array(
'headers' => array(
'Content-Type' => 'application/json',
'X-API-KEY' => $nft_gallery['api_key'],
)
);
$options = array(
'timeout' => 240
);
$options = array_merge( $headers, $options );
if ( empty( $error_message ) ) {
$response = wp_remote_get(
esc_url_raw( add_query_arg( $param, $url ) ),
$options
);
$body = json_decode( wp_remote_retrieve_body( $response ) );
$response = 'assets' === $nft_gallery['opensea_type'] && ! empty( $body->assets ) ? $body->assets : $body;
$response = 'collections' === $nft_gallery['opensea_type'] && ! empty( $response->collections ) ? $response->collections : $response;
if ( is_array( $response ) ) {
$response = array_splice( $response, 0, absint( $settings['eael_nft_gallery_opensea_item_limit'] ) );
set_transient( $cache_key, $response, $expiration );
$this->nft_gallery_items_count = count( $response );
} else {
$error_message_text_wallet = $error_message_text_slug = '';
if ( isset( $body->assets ) && is_array( $body->assets ) && 0 === count( $body->assets ) ) {
$error_message_text_slug = __( 'Please provide a valid collection slug!', 'essential-addons-for-elementor-lite' );
}
if ( ! empty( $body->asset_owner ) && isset( $body->asset_owner[0] ) ) {
$error_message_text_wallet = ! empty( $body->asset_owner[0] ) ? $body->asset_owner[0] : __( 'Please provide a valid wallet address!', 'essential-addons-for-elementor-lite' );
} else if ( ! empty( $body->owner ) && isset( $body->owner[0] ) ) {
$error_message_text_wallet = ! empty( $body->owner[0] ) ? $body->owner[0] : __( 'Please provide a valid wallet address!', 'essential-addons-for-elementor-lite' );
}
if ( 'assets' === $nft_gallery['opensea_type'] && 'collection-slug' === $nft_gallery['opensea_filterby'] ) {
$error_message_text = $error_message_text_slug;
}
if ( 'collections' === $nft_gallery['opensea_type'] || ( 'assets' === $nft_gallery['opensea_type'] && 'wallet-address' === $nft_gallery['opensea_filterby'] ) ) {
$error_message_text = $error_message_text_wallet;
}
if ( ! empty( $error_message_text ) ) {
$error_message = esc_html( $error_message_text );
}
}
}
$data = [
'items' => $response,
'error_message' => $error_message,
];
return $data;
}
$response = $items ? $items : $response;
$this->nft_gallery_items_count = count( $response );
$data = [
'items' => $response,
'error_message' => $error_message,
];
return $data;
}
protected function render_loadmore_button()
{
$settings = $this->get_settings_for_display();
$icon_migrated = isset($settings['__fa4_migrated']['eael_nft_gallery_load_more_icon_new']);
$icon_is_new = empty($settings['eael_nft_gallery_load_more_icon']);
$post_per_page = ! empty($settings['eael_nft_gallery_posts_per_page']) ? intval( $settings['eael_nft_gallery_posts_per_page'] ) : 6;
$post_limit = ! empty( $settings['eael_nft_gallery_opensea_item_limit'] ) ? $settings['eael_nft_gallery_opensea_item_limit'] : 9;
// $load_more_class = $post_per_page < $post_limit ? 'eael-d-block' : 'eael-d-none';
$this->add_render_attribute('nft-gallery-load-more-button', 'class', [
'eael-nft-gallery-load-more',
'elementor-button',
'elementor-size-' . esc_attr( $settings['eael_nft_gallery_button_size'] ),
]);
if ( 'yes' === $settings['eael_nft_gallery_pagination'] && $this->nft_gallery_items_count > $post_per_page ) { ?>
<div class="eael-nft-gallery-loadmore-wrap">
<a href="#" <?php echo $this->get_render_attribute_string('nft-gallery-load-more-button'); ?>>
<span class="eael-btn-loader"></span>
<?php if ($settings['eael_nft_gallery_button_icon_position'] == 'before') { ?>
<?php if ($icon_is_new || $icon_migrated) { ?>
<?php if (isset($settings['eael_nft_gallery_load_more_icon_new']['value']['url'])) : ?>
<img class="eael-nft-gallery-load-more-icon nft-gallery-load-more-icon-left" src="<?php echo esc_url($settings['eael_nft_gallery_load_more_icon_new']['value']['url']); ?>" alt="<?php echo esc_attr(get_post_meta($settings['eael_nft_gallery_load_more_icon_new']['value']['id'], '_wp_attachment_image_alt', true)); ?>" />
<?php else : ?>
<span class="eael-nft-gallery-load-more-icon nft-gallery-load-more-icon-left <?php echo esc_attr($settings['eael_nft_gallery_load_more_icon_new']['value']); ?>" aria-hidden="true"></span>
<?php endif; ?>
<?php } else { ?>
<span class="eael-nft-gallery-load-more-icon nft-gallery-load-more-icon-left <?php echo esc_attr($settings['eael_nft_gallery_load_more_icon']); ?>" aria-hidden="true"></span>
<?php } ?>
<?php } ?>
<span class="eael-nft-gallery-load-more-text">
<?php echo Helper::eael_wp_kses($settings['eael_nft_gallery_load_more_text']); ?>
</span>
<?php if ($settings['eael_nft_gallery_button_icon_position'] == 'after') { ?>
<?php if ($icon_is_new || $icon_migrated) { ?>
<?php if (isset($settings['eael_nft_gallery_load_more_icon_new']['value']['url'])) : ?>
<img class="eael-nft-gallery-load-more-icon nft-gallery-load-more-icon-right" src="<?php echo esc_url($settings['eael_nft_gallery_load_more_icon_new']['value']['url']); ?>" alt="<?php echo esc_attr(get_post_meta($settings['eael_nft_gallery_load_more_icon_new']['value']['id'], '_wp_attachment_image_alt', true)); ?>" />
<?php else : ?>
<span class="eael-nft-gallery-load-more-icon nft-gallery-load-more-icon-right <?php echo esc_attr($settings['eael_nft_gallery_load_more_icon_new']['value']); ?>" aria-hidden="true"></span>
<?php endif; ?>
<?php } else { ?>
<span class="eael-nft-gallery-load-more-icon nft-gallery-load-more-icon-right <?php echo esc_attr($settings['load_more_icon']); ?>" aria-hidden="true"></span>
<?php } ?>
<?php } ?>
</a>
</div>
<?php }
}
protected function render() {
$nft_gallery_items = $this->fetch_nft_gallery_from_api();
if( empty ( $nft_gallery_items['items'] ) ) {
?>
<p class="eael-nft-gallery-error-message">
<?php esc_html_e( 'Please insert a valid API Key', 'essential-addons-for-elementor-lite' ); ?>
</p>
<?php
return;
}
$this->print_nft_gallery( $nft_gallery_items );
}
}