: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
namespace EmbedPress\Elementor\Widgets;
use \Elementor\Controls_Manager as Controls_Manager;
use \Elementor\Modules\DynamicTags\Module as TagsModule;
use \Elementor\Widget_Base as Widget_Base;
use EmbedPress\Includes\Classes\Helper;
use EmbedPress\Includes\Traits\Branding;
(defined('ABSPATH')) or die("No direct script access allowed.");
class Embedpress_Pdf extends Widget_Base
protected $pro_class = '';
protected $pro_text = '';
public function get_name()
public function get_title()
return esc_html__('EmbedPress PDF', 'embedpress');
public function get_categories()
public function get_custom_help_url()
return 'https://embedpress.com/documentation';
public function get_icon()
public function get_style_depends()
'embedpress-elementor-css',
public function get_script_depends()
$handler_keys = get_option('enabled_elementor_scripts', []);
$handles[] = 'embedpress-pdfobject';
$handles[] = 'embedpress-front';
if (isset($handler_keys['enabled_ads']) && $handler_keys['enabled_ads'] === 'yes') {
$handles[] = 'embedpress-ads';
* Retrieve the list of keywords the widget belongs to.
* @return array Widget keywords.
public function get_keywords()
return ['embedpress', 'pdf', 'doc', 'embedpress-document'];
protected function register_controls()
$this->pro_class = is_embedpress_pro_active() ? '' : 'embedpress-pro-control not-active';
$this->pro_text = is_embedpress_pro_active() ? '' : '<sup class="embedpress-pro-label" style="color:red">' . __('Pro', 'embedpress') . '</sup>';
* EmbedPress Content Settings
$this->start_controls_section(
'embedpress_content_settings',
'label' => esc_html__('General', 'embedpress'),
'label' => __('Document Type', 'embedpress'),
'type' => Controls_Manager::SELECT,
'file' => __('File', 'embedpress'),
'url' => __('URL', 'embedpress')
'embedpress_pdf_file_link_from',
'label' => __( 'URL From', 'embedpress' ),
'type' => Controls_Manager::SELECT,
'self' => __( 'Self', 'embedpress' ),
'external' => __( 'External', 'embedpress' )
'embedpress_pdf_type' => 'url'
'embedpress_pdf_Uploader',
'label' => __('Upload File', 'embedpress'),
'type' => Controls_Manager::MEDIA,
TagsModule::MEDIA_CATEGORY,
'Upload a file or pick one from your media library for embed. Supported File Type: PDF',
'embedpress_pdf_type' => 'file'
'embedpress_pdf_file_link',
'label' => __('URL', 'embedpress'),
'type' => Controls_Manager::URL,
'placeholder' => __('https://your-link.com/file.pdf', 'embedpress'),
'show_external' => false,
'embedpress_pdf_type' => 'url'
'embedpress_pdf_viewer_style',
'label' => __('Viewer Style', 'embedpress'),
'type' => Controls_Manager::SELECT,
'modern' => __('Modern', 'embedpress'),
'flip-book' => __('Flip Book', 'embedpress'),
['name' => 'embedpress_pdf_type', 'operator' => '===', 'value' => 'file'],
['name' => 'embedpress_pdf_file_link_from', 'operator' => '===', 'value' => 'self'],
'label' => __('Zoom', 'embedpress'),
'type' => Controls_Manager::SELECT,
'auto' => __('Automatic Zoom', 'embedpress'),
'page-actual' => __('Actual Size', 'embedpress'),
'page-fit' => __('Page Fit', 'embedpress'),
'page-width' => __('Page Width', 'embedpress'),
'custom' => __('Custom', 'embedpress'),
'50' => __('50%', 'embedpress'),
'75' => __('75%', 'embedpress'),
'100' => __('100%', 'embedpress'),
'125' => __('125%', 'embedpress'),
'150' => __('150%', 'embedpress'),
'200' => __('200%', 'embedpress'),
'300' => __('300%', 'embedpress'),
'400' => __('400%', 'embedpress'),
'embedpress_pdf_viewer_style' => 'modern'
'embedpress_pdf_zoom_custom',
'label' => __('Custom Zoom', 'embedpress'),
'type' => Controls_Manager::NUMBER,
'embedpress_pdf_zoom' => 'custom'
$this->add_responsive_control(
'embedpress_elementor_document_width',
'type' => \Elementor\Controls_Manager::SLIDER,
'label' => esc_html__( 'Width', 'embedpress' ),
'size_units' => [ 'px', '%' ],
'devices' => [ 'desktop', 'tablet', 'mobile' ],
'{{WRAPPER}} .embedpress-document-embed iframe, , {{WRAPPER}} .ep-share-position-bottom .ep-embed-content-wraper' => 'width: {{SIZE}}{{UNIT}}!important; max-width: {{SIZE}}{{UNIT}}!important',
// '{{WRAPPER}} .embedpress-document-embed' => 'width: {{SIZE}}{{UNIT}}; max-width: 100%',
// '{{WRAPPER}} .embedpress-document-embed .pdfobject-container' => 'width: {{SIZE}}{{UNIT}} !important; max-width: 100%',
'render_type' => 'template',
$this->add_responsive_control(
'embedpress_elementor_document_height',
'type' => \Elementor\Controls_Manager::SLIDER,
'label' => esc_html__( 'Height', 'embedpress' ),
'devices' => [ 'desktop', 'tablet', 'mobile' ],
'size' => Helper::get_options_value('enableEmbedResizeHeight'),
'{{WRAPPER}} .embedpress-document-embed iframe' => 'height: {{SIZE}}{{UNIT}}!important;',
'{{WRAPPER}} .embedpress-document-embed .pdfobject-container' => 'height: {{SIZE}}{{UNIT}}!important;',
'render_type' => 'template',
$this->add_responsive_control(
'embedpress_elementor_document_align',
'label' => __('Alignment', 'embedpress'),
'type' => Controls_Manager::CHOOSE,
'title' => __('Left', 'embedpress'),
'icon' => 'eicon-text-align-left',
'title' => __('Center', 'embedpress'),
'icon' => 'eicon-text-align-center',
'title' => __('Right', 'embedpress'),
'icon' => 'eicon-text-align-right',
'prefix_class' => 'elementor%s-align-',
'embedpress_pdf_powered_by',
'label' => __('Powered By', 'embedpress'),
'type' => Controls_Manager::SWITCHER,
'label_on' => __('Show', 'embedpress'),
'label_off' => __('Hide', 'embedpress'),
'default' => apply_filters('embedpress_document_powered_by_control', 'yes'),
$this->init_branding_controls('document');
$this->end_controls_section();
* EmbedPress PDF Control Settings
$this->start_controls_section(
'embedpress_pdf_content_settings',
'label' => esc_html__('Controls', 'embedpress'),
['name' => 'embedpress_pdf_type', 'operator' => '===', 'value' => 'file'],
['name' => 'embedpress_pdf_file_link_from', 'operator' => '===', 'value' => 'self'],
'label' => __('Theme', 'embedpress'),
'type' => Controls_Manager::SELECT,
'default' => __('System Default', 'embedpress'),
'dark' => __('Dark', 'embedpress'),
'light' => __('Light', 'embedpress'),
'custom' => __('Custom', 'embedpress')
'embedpress_pdf_custom_color',
'label' => esc_html__( 'Color', 'embedpress' ),
'type' => \Elementor\Controls_Manager::COLOR,
'default' => Helper::get_options_value('custom_color'),
'embedpress_theme_mode' => 'custom',
'label' => sprintf(__('Toolbar %s', 'embedpress'), $this->pro_text),
'type' => Controls_Manager::SWITCHER,
'label_on' => __('Show', 'embedpress'),
'label_off' => __('Hide', 'embedpress'),
'classes' => $this->pro_class,
'label' => esc_html__('Toolbar Position', 'embedpress'),
'type' => \Elementor\Controls_Manager::CHOOSE,
'title' => esc_html__('Top', 'embedpress'),
'icon' => 'eicon-arrow-up',
'title' => esc_html__('Bottom', 'embedpress'),
'icon' => 'eicon-arrow-down',
'embedpress_pdf_viewer_style' => 'modern',
'flipbook_toolbar_position',
'label' => esc_html__('Toolbar Position', 'embedpress'),
'type' => \Elementor\Controls_Manager::CHOOSE,
'title' => esc_html__('Top', 'embedpress'),
'icon' => 'eicon-arrow-up',
'title' => esc_html__('Bottom', 'embedpress'),
'icon' => 'eicon-arrow-down',
'embedpress_pdf_viewer_style' => 'flip-book',
'label' => sprintf(__('Print/Download %s', 'embedpress'), $this->pro_text),
'type' => Controls_Manager::SWITCHER,
'label_on' => __('Show', 'embedpress'),
'label_off' => __('Hide', 'embedpress'),
'classes' => $this->pro_class,
'label' => __('Zoom In', 'embedpress'),
'type' => Controls_Manager::SWITCHER,
'label_on' => __('Show', 'embedpress'),
'label_off' => __('Hide', 'embedpress'),
'embedpress_pdf_viewer_style' => 'flip-book',
'label' => __('Zoom Out', 'embedpress'),
'type' => Controls_Manager::SWITCHER,
'label_on' => __('Show', 'embedpress'),
'label_off' => __('Hide', 'embedpress'),
'embedpress_pdf_viewer_style' => 'flip-book',