'wordpress', 'title' => 'WordPress', ); // info public function info($key = false) { if ($key && isset($this->info[$key])) { return $this->info[$key]; } else { return array( $this->info['key'] => $this->info['title'], ); } } // active public function active() { return true; } // set public function set($key, $value) { if (!isset($this->options)) { $this->options = new stdClass(); } $this->options->$key = $value; switch ($key) { case 'dataset': $this->set('cached_post', false); if ($this->get('dataset')) { if ($this->get('item') == '-3') { $this->set('cached_post', get_user_by('id', $this->get('dataset'))); } else { $pll = $this->helper->load('translator')->isPolylang(); if ($pll) { $lang = pll_get_post_language($this->get('dataset')); if ($lang) { PLL()->curlang = PLL()->model->get_language($lang); } } $this->set('cached_post', get_post($this->get('dataset'))); } } break; default: break; } } // get public function get($key) { if ($key == 'user_id' && $this->get('item') == '-3') { $key = 'dataset'; } if (isset($this->options->$key)) { $value = $this->options->$key; } else { switch ($key) { case 'args': $value = array(); break; default: $value = false; break; } } return $value; } // items public function items() { $items = array(); $forms = get_post_types(array(), 'names'); foreach ($forms as $form) { if ($form != 'attachment') { $items[] = $this->item($form); } } $items[] = $this->item('-3'); return $items; } // datasets public function datasets($item_id = false, $name = false) { $datasets = array(); if ($item_id) { if ($item_id == '-3') { $entries = get_users( array( 'fields' => array( 'ID', 'user_login', ), ) ); if ($entries) { $this->set('item', $item_id); foreach ($entries as $key => $entry) { $this->set('dataset', $entry->ID); $entry_title = $this->render($name); if (!$entry_title) { $entry_title = isset($entry->user_login) && $entry->user_login ? $entry->user_login : $entry->ID; } $datasets[] = array( 'key' => $entry->ID, 'value' => $entry_title, ); } } } else { $wpml = $this->helper->load('translator')->isWPML(); if ($wpml) { $lang = apply_filters('wpml_current_language', null); $entries = get_posts( array( 'post_type' => $item_id, 'numberposts' => -1, 'post_status' => 'any', 'lang' => $lang, 'suppress_filters' => false, ) ); } else { $entries = get_posts( array( 'post_type' => $item_id, 'numberposts' => -1, 'post_status' => 'any', ) ); } if ($entries) { $this->set('item', $item_id); foreach ($entries as $key => $entry) { $this->set('dataset', $entry->ID); $entry_title = $this->render($name); if (!$entry_title) { $entry_title = isset($entry->post_title) && $entry->post_title ? $entry->post_title : $entry->ID; } $datasets[] = array( 'key' => $entry->ID, 'value' => $entry_title, ); } } } } return $datasets; } // get dataset actions public function get_dataset_actions($dataset_id = false) { $dataset_id = (int) $dataset_id; if (!$dataset_id) { return false; } $actions = new stdClass(); if ($this->get('item') == '-3') { $actions->view = $this->helper->get_url( array( 'user_id' => $dataset_id, ), 'user-edit.php?' ); } else { $actions->view = $this->helper->get_url( array( 'post' => $dataset_id, 'action' => 'edit', ), 'post.php?' ); } $actions->delete = false; return $actions; } // get template actions public function get_template_actions($template = false) { $template = (int) $template; if (!$template) { return; } $actions = new stdClass(); $actions->delete = false; return $actions; } // item public function item($item_id = false) { if (!$item_id && $this->get('item')) { $item_id = $this->get('item'); } $item = new stdClass(); if ($item_id == '-3') { $item->id = $item_id; $item->name = __('Users'); $item->url = $this->helper->get_url(array(), 'users.php'); } else { $form = get_post_type_object($item_id); if ($form) { $item->id = $item_id; $item->name = $form->label ? $form->label : $item_id; $item->url = $this->helper->get_url(array('post_type' => $item_id), 'edit.php?'); } else { $item->id = ''; $item->name = ''; $item->url = ''; } } return $item; } // load filters public function load_filters() { add_filter('the_content', array($this, 'filter_the_content'), 10, 2); add_filter('widget_text', array($this, 'filter_content_custom')); add_filter('widget_block_content', array($this, 'filter_content_custom')); /** * Popup Maker – Popup for opt-ins, lead gen, & more * https://wordpress.org/plugins/popup-maker/ */ add_filter('pum_popup_content', array($this, 'filter_the_content'), 10, 2); /** * Events Manager * https://wordpress.org/plugins/events-manager/ */ add_filter('em_event_output_placeholder', array($this, 'filter_content_custom'), 0); add_filter('em_event_output', array($this, 'filter_content_custom')); add_filter('em_booking_output_placeholder', array($this, 'filter_content_custom'), 0); add_filter('em_booking_output', array($this, 'filter_content_custom')); add_filter('em_location_output_placeholder', array($this, 'filter_content_custom'), 0); add_filter('em_location_output', array($this, 'filter_content_custom')); add_filter('em_category_output_placeholder', array($this, 'filter_content_custom'), 0); /** * Beaver Builder – WordPress Page Builder * https://wordpress.org/plugins/beaver-builder-lite-version/ */ add_filter('fl_builder_before_render_shortcodes', array($this, 'filter_content_loop')); /** * WPBakery Page Builder Image Object Link */ add_filter('vc_map_get_attributes', array($this, 'filter_vc_map_get_attributes'), 10, 2); /** * Flatsome theme global tab content */ add_filter('theme_mod_tab_content', array($this, 'filter_content_custom')); /** * MemberPress Mail attachments * https://memberpress.com/ */ add_filter('mepr_email_send_attachments', array($this, 'filter_mepr_email_send_attachments'), 10, 4); add_filter('the_content', array($this, 'filter_mepr_the_content'), 99); add_filter('mepr_custom_thankyou_message', array($this, 'filter_mepr_custom_thankyou_message')); /** * Thrive Theme Builder dynamic shortcode support */ add_filter('thrive_theme_template_content', array($this, 'filter_thrive_theme_template_content')); /** * WPBakery Page Builder Grid Item * [e2pdf-download id="1" dataset="{{ post_data:ID }}"] */ add_filter('vc_basic_grid_items_list', array($this, 'filter_vc_basic_grid_items_list')); /** * Themify Builder dynamic shortcode support * https://wordpress.org/plugins/themify-builder/ */ add_filter('themify_builder_module_content', array($this, 'filter_themify_builder_module_content')); /** * Impreza theme by Up Solutions * https://themeforest.net/item/impreza-retina-responsive-wordpress-theme/6434280 */ add_filter('us_content_template_the_content', array($this, 'filter_content_custom')); /** * Cornerstone Builder * https://theme.co/cornerstone/ */ add_filter('cs_element_pre_render', array($this, 'filter_cs_element_pre_render')); /** * Divi Theme Builder * https://www.elegantthemes.com/ */ add_filter('et_pb_module_content', array($this, 'filter_et_pb_module_content'), 30, 6); /** * User Registration & Membership – Custom Registration Form, Login Form, and User Profile * https://wordpress.org/plugins/user-registration/ */ add_filter('user_registration_smart_tag_values', array($this, 'filter_user_registration_smart_tag_values'), 0); /* Hooks */ add_filter('post_row_actions', array($this, 'hook_wordpress_row_actions'), 10, 2); add_filter('page_row_actions', array($this, 'hook_wordpress_row_actions'), 10, 2); add_filter('user_row_actions', array($this, 'hook_wordpress_row_actions'), 10, 2); } // load actions public function load_actions() { /** * Elementor Website Builder – More than Just a Page Builder * https://wordpress.org/plugins/elementor/ */ add_action('elementor/widget/before_render_content', array($this, 'action_elementor_widget_before_render_content')); add_action('elementor/frontend/widget/before_render', array($this, 'action_elementor_widget_before_render_content'), 5); /** * JetEngine: WordPress Plugin for Elementor * https://crocoblock.com */ add_action('jet-engine/listing/grid/before-render', array($this, 'action_jet_engine_listing_grid_before_render')); add_action('jet-engine/listing/grid/after-render', array($this, 'action_jet_engine_listing_grid_after_render')); /** * Happy Addons for Elementor * https://wordpress.org/plugins/happy-elementor-addons/ compatibility fix */ add_action('elementor/frontend/before_render', array($this, 'action_elementor_widget_before_render_content'), 0); /** * MemberPress Mail attachments remove * https://memberpress.com/ */ add_action('mepr_email_sent', array($this, 'action_mepr_email_sent'), 10, 3); /** * User Registration & Membership – Custom Registration Form, Login Form, and User Profile * https://wordpress.org/plugins/user-registration/ */ add_action('user_registration_email_send_before', array($this, 'action_user_registration_email_send_before')); add_action('user_registration_email_send_after', array($this, 'action_user_registration_email_send_after')); /* Hooks */ add_action('add_meta_boxes', array($this, 'hook_wordpress_page_edit')); } // render public function render($value, $field = array(), $convert_shortcodes = true, $raw = false) { $value = $this->render_shortcodes($value, $field); if (!$raw) { $value = $this->strip_shortcodes($value); $value = $this->convert_shortcodes($value, $convert_shortcodes, isset($field['type']) && $field['type'] == 'e2pdf-html' ? true : false); $value = $this->helper->load('field')->render_checkbox($value, $this, $field); } return $value; } // render shortcodes public function render_shortcodes($value, $field = array()) { $element_id = isset($field['element_id']) ? $field['element_id'] : false; if ($this->verify()) { /** * Set current Post for Toolset Views * https://toolset.com/ */ do_action('wpv_action_wpv_set_top_current_post', $this->get('cached_post')); $wordpress_shortcodes = array( 'id', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_excerpt', 'post_status', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_content_filtered', 'post_parent', 'guid', 'menu_order', 'post_type', 'post_mime_type', 'comment_count', 'filter', 'post_thumbnail', 'get_the_post_thumbnail', 'get_the_post_thumbnail_url', 'get_permalink', 'get_post_permalink', ); if (false !== strpos($value, '[')) { $value = $this->helper->load('field')->pre_shortcodes($value, $this, $field); $value = $this->helper->load('field')->inner_shortcodes($value, $this, $field); if ($this->get('item') == '-3') { $shortcode_tags = array( 'acf', ); } else { $shortcode_tags = array( 'meta', 'terms', 'e2pdf-wp', 'e2pdf-wp-term', 'e2pdf-content', 'acf', ); $shortcode_tags = array_merge($shortcode_tags, $wordpress_shortcodes); } preg_match_all('@\[([^<>&/\[\]\x00-\x20=]++)@', $value, $matches); $tagnames = array_intersect($shortcode_tags, $matches[1]); if (!empty($tagnames)) { preg_match_all('/' . $this->helper->load('shortcode')->get_shortcode_regex($tagnames) . '/', $value, $shortcodes); foreach ($shortcodes[0] as $key => $shortcode_value) { $shortcode = $this->helper->load('shortcode')->get_shortcode($shortcodes, $key); $atts = shortcode_parse_atts($shortcode[3]); if ($shortcode[2] === 'e2pdf-content') { if (!isset($atts['id']) && isset($this->get('cached_post')->ID) && $this->get('cached_post')->ID) { $shortcode[3] .= ' id=' . $this->get('cached_post')->ID . ''; $value = str_replace($shortcode_value, '[' . $shortcode[2] . $shortcode[3] . ']', $value); } } elseif ($shortcode[2] === 'meta' || $shortcode[2] === 'terms' || $shortcode[2] == 'e2pdf-wp') { if (!isset($atts['id']) && isset($this->get('cached_post')->ID) && $this->get('cached_post')->ID) { $shortcode[3] .= ' id=' . $this->get('cached_post')->ID . ''; } if ($shortcode[2] === 'meta') { $shortcode[3] .= ' meta=true'; } if ($shortcode[2] === 'terms') { $shortcode[3] .= ' terms=true'; } if (substr($shortcode_value, -11) === '[/e2pdf-wp]' || substr($shortcode_value, -8) === '[/terms]' || substr($shortcode_value, -7) === '[/meta]') { if ($shortcode[5]) { $shortcode[5] = $this->render($shortcode[5], array(), false); } $value = str_replace($shortcode_value, '[e2pdf-wp' . $shortcode[3] . ']' . $shortcode[5] . '[/e2pdf-wp]', $value); } else { $value = str_replace($shortcode_value, '[e2pdf-wp' . $shortcode[3] . ']', $value); } } elseif ($shortcode[2] === 'e2pdf-wp-term') { if (substr($shortcode_value, -16) === '[/e2pdf-wp-term]') { if ($shortcode[5]) { $shortcode[5] = $this->render($shortcode[5], array(), false); } $value = str_replace($shortcode_value, '[e2pdf-wp-term' . $shortcode[3] . ']' . $shortcode[5] . '[/e2pdf-wp-term]', $value); } } elseif (in_array($shortcode[2], $wordpress_shortcodes, false)) { if (!isset($atts['id']) && isset($this->get('cached_post')->ID) && $this->get('cached_post')->ID) { $shortcode[3] .= ' id=' . $this->get('cached_post')->ID . ''; } $shortcode[3] .= ' key=' . $shortcode[2] . ''; $value = str_replace($shortcode_value, '[e2pdf-wp' . $shortcode[3] . ']', $value); } elseif ($shortcode[2] === 'acf') { if (!isset($atts['post_id']) && isset($this->get('cached_post')->ID) && $this->get('cached_post')->ID) { if ($this->get('item') == '-3') { $shortcode[3] .= ' post_id=user_' . $this->get('cached_post')->ID . ''; } else { $shortcode[3] .= ' post_id=' . $this->get('cached_post')->ID . ''; } $value = str_replace($shortcode_value, '[' . $shortcode[2] . $shortcode[3] . ']', $value); } } } } $value = $this->helper->load('field')->wrapper_shortcodes($value, $this, $field); } add_filter('frm_filter_view', array($this, 'filter_frm_filter_view')); $value = $this->helper->load('field')->do_shortcodes($value, $this, $field); $value = $this->helper->load('field')->render( apply_filters('e2pdf_extension_render_shortcodes_pre_value', $value, $element_id, $this->get('template_id'), $this->get('item'), $this->get('dataset'), false, false), $this, $field ); remove_filter('frm_filter_view', array($this, 'filter_frm_filter_view')); } return apply_filters( 'e2pdf_extension_render_shortcodes_value', $value, $element_id, $this->get('template_id'), $this->get('item'), $this->get('dataset'), false, false ); } // strip shortcodes public function strip_shortcodes($value) { $value = preg_replace('~(?:\[/?)[^/\]]+/?\]~s', '', $value); return $value; } // convert shortcodes public function convert_shortcodes($value, $to = false, $html = false) { if ($value) { if ($to) { $value = str_replace('[', '[', $value); if (!$html) { $value = wp_specialchars_decode($value, ENT_QUOTES); } } else { $value = str_replace('[', '[', $value); } } return $value; } // auto public function auto() { $response = array(); $elements = array(); if ($this->get('item') == '-3') { $elements[] = array( 'type' => 'e2pdf-html', 'block' => true, 'properties' => array( 'top' => '20', 'left' => '20', 'right' => '20', 'width' => '100%', 'height' => 'auto', 'value' => '

[e2pdf-user key="user_login"]

', ), ); $elements[] = array( 'type' => 'e2pdf-image', 'block' => true, 'properties' => array( 'top' => '20', 'left' => '20', 'right' => '20', 'width' => '100%', 'height' => '100', 'vertical' => 'top', 'value' => '[e2pdf-user key="get_avatar_url"]', ), ); $elements[] = array( 'type' => 'e2pdf-html', 'block' => true, 'properties' => array( 'top' => '20', 'left' => '20', 'right' => '20', 'width' => '100%', 'height' => 'auto', 'value' => 'ID: [e2pdf-user key="ID"]', ), ); $elements[] = array( 'type' => 'e2pdf-html', 'block' => true, 'properties' => array( 'top' => '20', 'left' => '20', 'right' => '20', 'width' => '100%', 'height' => 'auto', 'value' => 'First Name: [e2pdf-user key="user_firstname"]', ), ); $elements[] = array( 'type' => 'e2pdf-html', 'block' => true, 'properties' => array( 'top' => '20', 'left' => '20', 'right' => '20', 'width' => '100%', 'height' => 'auto', 'value' => 'Last Name: [e2pdf-user key="user_lastname"]', ), ); $elements[] = array( 'type' => 'e2pdf-html', 'block' => true, 'properties' => array( 'top' => '20', 'left' => '20', 'right' => '20', 'width' => '100%', 'height' => 'auto', 'value' => 'Email: [e2pdf-user key="user_email"]', ), ); $elements[] = array( 'type' => 'e2pdf-html', 'block' => true, 'properties' => array( 'top' => '20', 'left' => '20', 'right' => '20', 'width' => '100%', 'height' => 'auto', 'value' => 'Registered: [e2pdf-user key="user_registered"]', ), ); } else { $elements[] = array( 'type' => 'e2pdf-html', 'block' => true, 'properties' => array( 'top' => '20', 'left' => '20', 'right' => '20', 'width' => '100%', 'height' => 'auto', 'value' => '

[e2pdf-wp key="post_title"]

', ), ); $elements[] = array( 'type' => 'e2pdf-html', 'block' => true, 'properties' => array( 'top' => '20', 'left' => '20', 'right' => '20', 'width' => '100%', 'height' => 'auto', 'value' => 'Post name: [e2pdf-wp key="post_name"]', ), ); $elements[] = array( 'type' => 'e2pdf-html', 'block' => true, 'properties' => array( 'top' => '20', 'left' => '20', 'right' => '20', 'width' => '100%', 'height' => 'auto', 'value' => 'Post type: [e2pdf-wp key="post_type"]', ), ); $elements[] = array( 'type' => 'e2pdf-html', 'block' => true, 'properties' => array( 'top' => '20', 'left' => '20', 'right' => '20', 'width' => '100%', 'height' => 'auto', 'value' => 'ID: [e2pdf-wp key="id"]', ), ); $elements[] = array( 'type' => 'e2pdf-html', 'block' => true, 'properties' => array( 'top' => '20', 'left' => '20', 'right' => '20', 'width' => '100%', 'height' => 'auto', 'value' => 'Author: [e2pdf-wp key="post_author"]', ), ); $elements[] = array( 'type' => 'e2pdf-html', 'block' => true, 'properties' => array( 'top' => '20', 'left' => '20', 'right' => '20', 'width' => '100%', 'height' => '300', 'value' => '[e2pdf-wp key="post_content"]', ), ); $elements[] = array( 'type' => 'e2pdf-html', 'block' => true, 'properties' => array( 'top' => '20', 'left' => '20', 'right' => '20', 'width' => '100%', 'height' => 'auto', 'value' => 'Created: [e2pdf-wp key="post_date"]', ), ); $elements[] = array( 'type' => 'e2pdf-html', 'block' => true, 'properties' => array( 'top' => '20', 'left' => '20', 'right' => '20', 'width' => '100%', 'height' => 'auto', 'value' => 'Modified: [e2pdf-wp key="post_modified"]', ), ); } $response['page'] = array( 'bottom' => '20', 'top' => '20', 'left' => '20', 'right' => '20', ); $response['elements'] = $elements; return $response; } // before render content widget action public function action_elementor_widget_before_render_content($widget) { if ($widget && ($widget->get_name() == 'shortcode' || $widget->get_name() == 'text-editor')) { $content = $widget->get_name() == 'shortcode' ? $widget->get_settings('shortcode') : $widget->get_settings('editor'); if ($content && false !== strpos($content, '[e2pdf-')) { $wp_reset_postdata = true; if (class_exists('\ElementorPro\Plugin') && class_exists('\ElementorPro\Modules\LoopBuilder\Documents\Loop')) { $document = \ElementorPro\Plugin::elementor()->documents->get_current(); if ($document && $document instanceof \ElementorPro\Modules\LoopBuilder\Documents\Loop) { $wp_reset_postdata = false; } } if ($widget->get_name() == 'shortcode') { $widget->set_settings('shortcode', $this->filter_content($content, false, $wp_reset_postdata)); } elseif ($widget->get_name() == 'text-editor' && !$wp_reset_postdata) { $widget->set_settings('editor', $this->filter_content($content, false, $wp_reset_postdata)); } } } } // jet engine listing grid before render action public function action_jet_engine_listing_grid_before_render($listing_grid) { $this->set('queried_object', true); } // jet engine listing grid after render action public function action_jet_engine_listing_grid_after_render($listing_grid) { $this->set('queried_object', false); } /** * Delete attachments that were sent by MemberPress email * https://memberpress.com/ */ public function action_mepr_email_sent($email, $values, $attachments) { $files = $this->helper->get('wordpress_attachments_mepr'); if (is_array($files) && !empty($files)) { foreach ($files as $key => $file) { $this->helper->delete_dir(dirname($file) . '/'); } $this->helper->deset('wordpress_attachments_mepr'); } } // registration email send before action public function action_user_registration_email_send_before() { add_filter('wp_mail', array($this, 'filter_wp_mail'), 11); } // registration email send after action public function action_user_registration_email_send_after() { remove_filter('wp_mail', array($this, 'filter_wp_mail'), 11); $files = $this->helper->get('wordpress_attachments'); if (is_array($files) && !empty($files)) { foreach ($files as $key => $file) { $this->helper->delete_dir(dirname($file) . '/'); } $this->helper->deset('wordpress_attachments'); } } // filter content public function filter_content($content, $post_id = false, $wp_reset_postdata = true) { global $post; if (!is_string($content) || false === strpos($content, '[')) { return $content; } $shortcode_tags = array( 'e2pdf-download', 'e2pdf-save', 'e2pdf-view', 'e2pdf-adobesign', 'e2pdf-zapier', ); preg_match_all('@\[([^<>&/\[\]\x00-\x20=]++)@', $content, $matches); $tagnames = array_intersect($shortcode_tags, $matches[1]); if (!empty($tagnames)) { preg_match_all('/' . $this->helper->load('shortcode')->get_shortcode_regex($tagnames) . '/', $content, $shortcodes); foreach ($shortcodes[0] as $key => $shortcode_value) { $shortcode = $this->helper->load('shortcode')->get_shortcode($shortcodes, $key); $atts = shortcode_parse_atts($shortcode[3]); if (isset($atts['wp_reset_postdata'])) { if ($atts['wp_reset_postdata'] == 'true') { $wp_reset_postdata = true; } else { $wp_reset_postdata = false; } } if ($wp_reset_postdata) { wp_reset_postdata(); } if ($this->helper->load('shortcode')->is_attachment($shortcode, $atts)) { // phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedIf } else { if (isset($atts['id'])) { $template = new Model_E2pdf_Template(); $template->load($atts['id']); if ($template->get('extension') === 'woocommerce' || $template->get('extension') === 'jetformbuilder') { continue; } elseif ($template->get('extension') === 'wordpress') { // phpcs:ignore WordPress.WP.CapitalPDangit.Misspelled if (!isset($atts['dataset'])) { if ($template->get('item') == '-3') { $dataset = get_current_user_id(); $atts['dataset'] = $dataset; $shortcode[3] .= ' dataset="' . $dataset . '"'; } else { if ($this->get('queried_object') && !$post_id) { $queried_object = get_queried_object(); $post_id = $queried_object && isset($queried_object->ID) ? $queried_object->ID : false; } if ($post_id || isset($post->ID)) { $dataset = $post_id ? $post_id : $post->ID; $atts['dataset'] = $dataset; $shortcode[3] .= ' dataset="' . $dataset . '"'; } } } } } if (!isset($atts['apply'])) { $shortcode[3] .= ' apply="true"'; } if (!isset($atts['filter'])) { $shortcode[3] .= ' filter="true"'; } $content = str_replace($shortcode_value, do_shortcode_tag($shortcode), $content); } } } return $content; } // [e2pdf-exclude] support inside Formidable Forms View beforeContent and afterContent public function filter_frm_filter_view($view) { if (isset($view->frm_before_content) && $view->frm_before_content) { $view->frm_before_content = str_replace('[e2pdf-exclude]', '[e2pdf-exclude apply="true"]', $view->frm_before_content); } if (isset($view->post_content) && $view->post_content) { $view->post_content = str_replace('[e2pdf-exclude]', '[e2pdf-exclude apply="true"]', $view->post_content); } if (isset($view->frm_after_content) && $view->frm_after_content) { $view->frm_after_content = str_replace('[e2pdf-exclude]', '[e2pdf-exclude apply="true"]', $view->frm_after_content); } return $view; } // vc map get attributes filter public function filter_vc_map_get_attributes($atts, $tag) { if ($tag == 'vc_single_image' && ((isset($atts['onclick']) && $atts['onclick'] == 'custom_link') || (empty($atts['onclick']) && (!isset($atts['img_link_large']) || 'yes' !== $atts['img_link_large']))) && (!empty($atts['link']) || !empty($atts['img_link']))) { if (!empty($atts['link'])) { $atts['link'] = $this->filter_content($atts['link']); } if (!empty($atts['img_link'])) { $atts['img_link'] = $this->filter_content($atts['img_link']); } } return $atts; } // filter cs element pre prender public function filter_cs_element_pre_render($data) { if (!empty($data['_type']) && $data['_type'] == 'raw-content' && !empty($data['raw_content']) && !empty($data['_p'])) { $data['raw_content'] = $this->filter_content($data['raw_content'], $data['_p']); } return $data; } // filter themify builder module content public function filter_themify_builder_module_content($content) { if ($content) { $content = $this->filter_content($content); } return $content; } // filter vs basic grid items list public function filter_vc_basic_grid_items_list($items) { if ($items) { $items = $this->filter_content($items); } return $items; } // filter the content public function filter_the_content($content, $post_id = false) { $content = $this->filter_content($content, $post_id); return $content; } // filter content custom public function filter_content_custom($content) { $content = $this->filter_content($content); return $content; } // filter content loop public function filter_content_loop($content) { $content = $this->filter_content($content, false, false); return $content; } /** * Memberpress Mail attachments filter * https://memberpress.com/ */ public function filter_mepr_email_send_attachments($attachments, $mail, $body, $values) { $message = $body ? $body : $mail->body(); if ($message && false !== strpos($message, '[')) { $message = $mail->replace_variables($message, $values); $shortcode_tags = array( 'e2pdf-attachment', 'e2pdf-save', ); preg_match_all('@\[([^<>&/\[\]\x00-\x20=]++)@', $message, $matches); $tagnames = array_intersect($shortcode_tags, $matches[1]); if (!empty($tagnames)) { preg_match_all('/' . $this->helper->load('shortcode')->get_shortcode_regex($tagnames) . '/', $message, $shortcodes); foreach ($shortcodes[0] as $key => $shortcode_value) { $shortcode = $this->helper->load('shortcode')->get_shortcode($shortcodes, $key); $atts = shortcode_parse_atts($shortcode[3]); $file = false; if (isset($atts['id']) && isset($atts['dataset'])) { if (!isset($atts['apply'])) { $shortcode[3] .= ' apply="true"'; } if (!isset($atts['filter'])) { $shortcode[3] .= ' filter="true"'; } if ($this->helper->load('shortcode')->is_attachment($shortcode, $atts)) { $file = do_shortcode_tag($shortcode); if ($file) { $tmp = false; if (substr($file, 0, 4) === 'tmp:') { $file = substr($file, 4); $tmp = true; } if ($shortcode[2] === 'e2pdf-save' || isset($atts['pdf'])) { if ($tmp) { $this->helper->add('wordpress_attachments_mepr', $file); } } else { $this->helper->add('wordpress_attachments_mepr', $file); } $attachments[] = $file; } } } } } } return $attachments; } // mepr the content filter public function filter_mepr_the_content($content) { if ( class_exists('MeprUtils') && method_exists('MeprUtils', 'get_current_post') && class_exists('MeprOptions') && method_exists('MeprOptions', 'fetch') ) { $current_post = MeprUtils::get_current_post(); if ($current_post !== false) { $mepr_options = MeprOptions::fetch(); if ($current_post->ID == $mepr_options->thankyou_page_id) { remove_shortcode('e2pdf-download'); remove_shortcode('e2pdf-view'); remove_shortcode('e2pdf-save'); remove_shortcode('e2pdf-zapier'); remove_shortcode('e2pdf-adobesign'); } } } return $content; } // mepr custom thank you message filter public function filter_mepr_custom_thankyou_message($content) { add_shortcode('e2pdf-download', array(new Model_E2pdf_Shortcode(), 'e2pdf_download')); add_shortcode('e2pdf-view', array(new Model_E2pdf_Shortcode(), 'e2pdf_view')); add_shortcode('e2pdf-save', array(new Model_E2pdf_Shortcode(), 'e2pdf_save')); add_shortcode('e2pdf-zapier', array(new Model_E2pdf_Shortcode(), 'e2pdf_zapier')); add_shortcode('e2pdf-adobesign', array(new Model_E2pdf_Shortcode(), 'e2pdf_adobesign')); // phpcs:ignore WordPress.Security.NonceVerification.Recommended if (isset($_REQUEST['trans_num']) && class_exists('MeprTransaction') && method_exists('MeprTransaction', 'get_one_by_trans_num')) { $txn = new MeprTransaction(); // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized $data = MeprTransaction::get_one_by_trans_num($_REQUEST['trans_num']); if (method_exists($txn, 'load_data')) { $txn->load_data($data); if (false !== strpos($content, '[')) { $shortcode_tags = array( 'e2pdf-download', 'e2pdf-view', 'e2pdf-save', 'e2pdf-zapier', 'e2pdf-adobesign', ); preg_match_all('@\[([^<>&/\[\]\x00-\x20=]++)@', $content, $matches); $tagnames = array_intersect($shortcode_tags, $matches[1]); if (!empty($tagnames)) { preg_match_all('/' . $this->helper->load('shortcode')->get_shortcode_regex($tagnames) . '/', $content, $shortcodes); foreach ($shortcodes[0] as $key => $shortcode_value) { wp_reset_postdata(); $shortcode = $this->helper->load('shortcode')->get_shortcode($shortcodes, $key); $atts = shortcode_parse_atts($shortcode[3]); if ($this->helper->load('shortcode')->is_attachment($shortcode, $atts)) { // phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedIf } elseif (isset($atts['id'])) { $user_id = !empty($txn->user_id) ? $txn->user_id : get_current_user_id(); $template = new Model_E2pdf_Template(); $template->load($atts['id']); if ($template->get('extension') === 'wordpress' && $template->get('item') == '-3') { // phpcs:ignore WordPress.WP.CapitalPDangit.Misspelled if (!isset($atts['dataset'])) { $atts['dataset'] = $user_id; $shortcode[3] .= ' dataset="' . $user_id . '"'; } } else { if (!isset($atts['user_id'])) { $atts['user_id'] = $user_id; $shortcode[3] .= ' user_id="' . $user_id . '"'; } } } if (!isset($atts['apply'])) { $shortcode[3] .= ' apply="true"'; } if (!isset($atts['filter'])) { $shortcode[3] .= ' filter="true"'; } $content = str_replace($shortcode_value, do_shortcode_tag($shortcode), $content); } } } } } return $content; } // user registration smart tag values filter public function filter_user_registration_smart_tag_values($values) { foreach ($values as $key => $value) { if (is_string($value) && false !== strpos($value, '[e2pdf-')) { $values[$key] = str_replace('[e2pdf-', '[e2pdf-', $value); } } return $values; } // wp mail filter public function filter_wp_mail($args) { if (isset($args['message'])) { if (false !== strpos($args['message'], '[')) { $shortcode_tags = array( 'e2pdf-download', 'e2pdf-save', 'e2pdf-attachment', 'e2pdf-adobesign', 'e2pdf-zapier', ); preg_match_all('@\[([^<>&/\[\]\x00-\x20=]++)@', $args['message'], $matches); $tagnames = array_intersect($shortcode_tags, $matches[1]); if (!empty($tagnames)) { $args['attachments'] = $this->helper->load('convert')->is_string_array($args['attachments']); preg_match_all('/' . $this->helper->load('shortcode')->get_shortcode_regex($tagnames) . '/', $args['message'], $shortcodes); foreach ($shortcodes[0] as $key => $shortcode_value) { $shortcode = $this->helper->load('shortcode')->get_shortcode($shortcodes, $key); $atts = shortcode_parse_atts($shortcode[3]); if (!isset($atts['apply'])) { $shortcode[3] .= ' apply="true"'; } if (!isset($atts['filter'])) { $shortcode[3] .= ' filter="true"'; } $file = false; if ($this->helper->load('shortcode')->is_attachment($shortcode, $atts)) { $file = do_shortcode_tag($shortcode); if ($file) { $tmp = false; if (substr($file, 0, 4) === 'tmp:') { $file = substr($file, 4); $tmp = true; } if ($shortcode[2] === 'e2pdf-save' || isset($atts['pdf'])) { if ($tmp) { $this->helper->add('wordpress_attachments', $file); } } else { $this->helper->add('wordpress_attachments', $file); } $args['attachments'][] = $file; } $args['message'] = str_replace($shortcode_value, '', $args['message']); } else { $args['message'] = str_replace($shortcode_value, do_shortcode_tag($shortcode), $args['message']); } } } } } $wp_mail = array( 'to' => $args['to'], 'subject' => $args['subject'], 'message' => $args['message'], 'headers' => $args['headers'], 'attachments' => $args['attachments'], ); return $wp_mail; } // Thrive Theme Builder dynamic shortcode support public function filter_thrive_theme_template_content($html) { add_filter('e2pdf_model_shortcode_e2pdf_download_atts', array($this, 'filter_global_post_id')); add_filter('e2pdf_model_shortcode_e2pdf_view_atts', array($this, 'filter_global_post_id')); add_filter('e2pdf_model_shortcode_e2pdf_save_atts', array($this, 'filter_global_post_id')); add_filter('e2pdf_model_shortcode_e2pdf_zapier_atts', array($this, 'filter_global_post_id')); return $html; } // dynamic post id support filter public function filter_global_post_id($atts) { if (!isset($atts['dataset']) && isset($atts['id'])) { $template_id = isset($atts['id']) ? (int) $atts['id'] : 0; $template = new Model_E2pdf_Template(); if ($template->load($template_id, false)) { if ($template->get('extension') === 'wordpress') { // phpcs:ignore WordPress.WP.CapitalPDangit.Misspelled global $post; if (isset($post->ID)) { $atts['dataset'] = (string) $post->ID; if (!isset($atts['apply'])) { $atts['apply'] = 'true'; } if (!isset($atts['filter'])) { $atts['filter'] = 'true'; } } } } } return $atts; } // et pb module content filter public function filter_et_pb_module_content($content, $props, $attrs, $render_slug, $_address, $global_content) { if (($render_slug == 'et_pb_code' || $render_slug == 'et_pb_text') && false !== strpos($content, '[') && function_exists('et_core_is_builder_used_on_current_request') && !et_core_is_builder_used_on_current_request() ) { global $post; $shortcode_tags = array( 'e2pdf-download', 'e2pdf-save', 'e2pdf-view', 'e2pdf-adobesign', 'e2pdf-zapier', ); preg_match_all('@\[([^<>&/\[\]\x00-\x20=]++)@', $content, $matches); $tagnames = array_intersect($shortcode_tags, $matches[1]); if (!empty($tagnames)) { preg_match_all('/' . $this->helper->load('shortcode')->get_shortcode_regex($tagnames) . '/', $content, $shortcodes); foreach ($shortcodes[0] as $key => $shortcode_value) { wp_reset_postdata(); $shortcode = $this->helper->load('shortcode')->get_shortcode($shortcodes, $key); $atts = shortcode_parse_atts($shortcode[3]); if ($this->helper->load('shortcode')->is_attachment($shortcode, $atts)) { // phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedIf } else { if (!isset($atts['dataset']) && isset($atts['id']) && (isset($post->ID))) { $dataset = $post->ID; $atts['dataset'] = $dataset; $shortcode[3] .= ' dataset="' . $dataset . '"'; } } if (!isset($atts['apply'])) { $shortcode[3] .= ' apply="true"'; } if (!isset($atts['filter'])) { $shortcode[3] .= ' filter="true"'; } $new_shortcode = '[' . $shortcode[2] . $shortcode[3] . ']'; $content = str_replace($shortcode_value, $new_shortcode, $content); } } } return $content; } // verify public function verify() { if ($this->get('item') && $this->get('cached_post') && (($this->get('item') == get_post_type($this->get('cached_post'))) || ($this->get('item') == '-3' && $this->get('cached_post')))) { return true; } return false; } // visual mapper public function visual_mapper() { $vc = ''; if ($this->get('item') != '-3') { $vc .= '

Common

'; $vc .= '
'; $vc .= '
' . $this->get_vm_element('ID', 'e2pdf-wp key="id"') . '
'; $vc .= '
' . $this->get_vm_element('Author', 'e2pdf-wp key="post_author"') . '
'; $vc .= '
' . $this->get_vm_element('Author ID', 'e2pdf-wp key="post_author_id"') . '
'; $vc .= '
' . $this->get_vm_element('Date', 'e2pdf-wp key="post_date"') . '
'; $vc .= '
' . $this->get_vm_element('Date (GMT)', 'e2pdf-wp key="post_date_gmt"') . '
'; $vc .= '
' . $this->get_vm_element('Content', 'e2pdf-wp key="post_content"') . '
'; $vc .= '
' . $this->get_vm_element('Title', 'e2pdf-wp key="post_title"') . '
'; $vc .= '
' . $this->get_vm_element('Excerpt', 'e2pdf-wp key="post_excerpt"') . '
'; $vc .= '
' . $this->get_vm_element('Status', 'e2pdf-wp key="post_status"') . '
'; $vc .= '
' . $this->get_vm_element('Comment Status', 'e2pdf-wp key="comment_status"') . '
'; $vc .= '
' . $this->get_vm_element('Ping Status', 'e2pdf-wp key="ping_status"') . '
'; $vc .= '
' . $this->get_vm_element('Password', 'e2pdf-wp key="post_password"') . '
'; $vc .= '
' . $this->get_vm_element('Name', 'e2pdf-wp key="post_name"') . '
'; $vc .= '
' . $this->get_vm_element('To Ping', 'e2pdf-wp key="to_ping"') . '
'; $vc .= '
' . $this->get_vm_element('Ping', 'e2pdf-wp key="pinged"') . '
'; $vc .= '
' . $this->get_vm_element('Modified Date', 'e2pdf-wp key="post_modified"') . '
'; $vc .= '
' . $this->get_vm_element('Modified Date (GMT)', 'e2pdf-wp key="post_modified_gmt"') . '
'; $vc .= '
' . $this->get_vm_element('Filtered Content', 'e2pdf-wp key="post_content_filtered"') . '
'; $vc .= '
' . $this->get_vm_element('Parent ID', 'e2pdf-wp key="post_parent"') . '
'; $vc .= '
' . $this->get_vm_element('GUID', 'e2pdf-wp key="guid"') . '
'; $vc .= '
' . $this->get_vm_element('Menu Order', 'e2pdf-wp key="menu_order"') . '
'; $vc .= '
' . $this->get_vm_element('Type', 'e2pdf-wp key="post_type"') . '
'; $vc .= '
' . $this->get_vm_element('Mime Type', 'e2pdf-wp key="post_mime_type"') . '
'; $vc .= '
' . $this->get_vm_element('Comments Count', 'e2pdf-wp key="comment_count"') . '
'; $vc .= '
' . $this->get_vm_element('Filter', 'e2pdf-wp key="filter"') . '
'; $vc .= '
' . $this->get_vm_element('Post Thumbnail', 'e2pdf-wp key="get_the_post_thumbnail"') . '
'; $vc .= '
' . $this->get_vm_element('Post Thumbnail URL', 'e2pdf-wp key="get_the_post_thumbnail_url"') . '
'; $vc .= '
' . $this->get_vm_element('Permalink', 'e2pdf-wp key="get_permalink"') . '
'; $vc .= '
' . $this->get_vm_element('Post Permalink', 'e2pdf-wp key="get_post_permalink"') . '
'; $vc .= '
'; $meta_keys = $this->get_post_meta_keys(); if (!empty($meta_keys)) { $vc .= '

Meta Keys

'; $vc .= "
"; foreach ($meta_keys as $meta_key) { $vc .= '
' . $this->get_vm_element($meta_key, 'e2pdf-wp key="' . $meta_key . '" meta="true"') . '
'; } $vc .= '
'; } $meta_keys = $this->get_post_taxonomy_keys(); if (!empty($meta_keys)) { $vc .= '

Taxonomy

'; $vc .= "
"; foreach ($meta_keys as $meta_key) { $vc .= '
' . $this->get_vm_element($meta_key, 'e2pdf-wp key="' . $meta_key . '" terms="true" names="true"') . '
'; } $vc .= '
'; } } $vc .= '

User

'; $vc .= "
"; $vc .= '
' . $this->get_vm_element('ID', 'e2pdf-user key="ID"') . '
'; $vc .= '
' . $this->get_vm_element('Description', 'e2pdf-user key="user_description"') . '
'; $vc .= '
' . $this->get_vm_element('First Name', 'e2pdf-user key="user_firstname"') . '
'; $vc .= '
' . $this->get_vm_element('Last Name', 'e2pdf-user key="user_lastname"') . '
'; $vc .= '
' . $this->get_vm_element('Login', 'e2pdf-user key="user_login"') . '
'; $vc .= '
' . $this->get_vm_element('Nicename', 'e2pdf-user key="user_nicename"') . '
'; $vc .= '
' . $this->get_vm_element('E-mail', 'e2pdf-user key="user_email"') . '
'; $vc .= '
' . $this->get_vm_element('Url', 'e2pdf-user key="user_url"') . '
'; $vc .= '
' . $this->get_vm_element('Registered', 'e2pdf-user key="user_registered"') . '
'; $vc .= '
' . $this->get_vm_element('User Status', 'e2pdf-user key="user_status"') . '
'; $vc .= '
' . $this->get_vm_element('User Level', 'e2pdf-user key="user_level"') . '
'; $vc .= '
' . $this->get_vm_element('Display Name', 'e2pdf-user key="display_name"') . '
'; $vc .= '
' . $this->get_vm_element('Spam', 'e2pdf-user key="spam"') . '
'; $vc .= '
' . $this->get_vm_element('Deleted', 'e2pdf-user key="deleted"') . '
'; $vc .= '
' . $this->get_vm_element('Locale', 'e2pdf-user key="locale"') . '
'; $vc .= '
' . $this->get_vm_element('Rich Editing', 'e2pdf-user key="rich_editing"') . '
'; $vc .= '
' . $this->get_vm_element('Syntax Highlighting', 'e2pdf-user key="syntax_highlighting"') . '
'; $vc .= '
' . $this->get_vm_element('Use SSL', 'e2pdf-user key="use_ssl"') . '
'; $vc .= '
' . $this->get_vm_element('Roles', 'e2pdf-user key="roles"') . '
'; $vc .= '
' . $this->get_vm_element('Avatar', 'e2pdf-user key="get_avatar"') . '
'; $vc .= '
' . $this->get_vm_element('Avatar Url', 'e2pdf-user key="get_avatar_url"') . '
'; $vc .= '
'; $meta_keys = $this->get_user_meta_keys(); if (!empty($meta_keys)) { $vc .= '

User Meta Keys

'; $vc .= "
"; foreach ($meta_keys as $meta_key) { $vc .= '
' . $this->get_vm_element($meta_key, 'e2pdf-user key="' . $meta_key . '" meta="true"') . '
'; } $vc .= '
'; } if (class_exists('ACF') && function_exists('acf_get_field_groups')) { $user_groups = acf_get_field_groups( array( 'user_id' => 'new', 'user_form' => 'all', ) ); if (!empty($user_groups)) { $user_groups = array_column($user_groups, 'key'); } if ($this->get('item') == '-3') { $groups = acf_get_field_groups( array( 'user_id' => 'new', 'user_form' => 'all', ) ); } else { $groups = acf_get_field_groups(array('post_type' => $this->get('item'))); } if (!empty($groups)) { $vc .= "

ACF

"; foreach ($groups as $group_key => $group) { $post_id = ''; if (!empty($user_groups)) { if (in_array($group['key'], $user_groups, false)) { if ($this->get('item') == '-3') { $post_id = ' post_id="user_[e2pdf-dataset]"'; } else { $post_id = ' post_id="user_[e2pdf-userid]"'; } } } $vc .= '

' . $group['title'] . '

'; $vc .= "
"; foreach (acf_get_fields($group['key']) as $field_key => $field) { $vc = $this->get_acf_field($vc, $field, $post_id); } $vc .= '
'; } } } return $vc; } // get acf field public function get_acf_field($vc, $field, $post_id) { if ($field['type'] == 'repeater' && !empty($field['sub_fields'])) { $sub_fields = array(); foreach ($field['sub_fields'] as $sub_field_key => $sub_field) { $sub_fields[] = '[acf field="' . $sub_field['name'] . '"' . $post_id . ']'; $sub_field['label'] = $field['label'] . ' ' . $sub_field['label']; $sub_field['name'] = $field['name'] . '_0_' . $sub_field['name']; $vc = $this->get_acf_field($vc, $sub_field, $post_id); } if (!empty($sub_fields)) { $vc .= '
' . $this->get_vm_element($field['label'] . ' Iteration', 'e2pdf-acf-repeater field="' . $field['name'] . '"' . $post_id . ']' . implode(' ', $sub_fields) . "\r\n" . '[/e2pdf-acf-repeater') . '
'; } } elseif ($field['type'] == 'group' && !empty($field['sub_fields'])) { $sub_fields = array(); foreach ($field['sub_fields'] as $sub_field_key => $sub_field) { $sub_field['label'] = $field['label'] . ' ' . $sub_field['label']; $sub_field['name'] = $field['name'] . '_' . $sub_field['name']; $vc = $this->get_acf_field($vc, $sub_field, $post_id); } } else { if ($field['name']) { $vc .= '
' . $this->get_vm_element($field['label'], 'acf field="' . $field['name'] . '"' . $post_id) . '
'; } } return $vc; } // get post meta keys public function get_post_meta_keys() { global $wpdb; $meta_keys = array(); if ($this->get('item')) { $condition = array( 'p.post_type' => array( 'condition' => '=', 'value' => $this->get('item'), 'type' => '%s', ), ); $order_condition = array( 'orderby' => 'meta_key', 'order' => 'desc', ); $where = $this->helper->load('db')->prepare_where($condition); $orderby = $this->helper->load('db')->prepare_orderby($order_condition); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare $meta_keys = $wpdb->get_col($wpdb->prepare('SELECT DISTINCT `meta_key` FROM `' . $wpdb->postmeta . '` `pm` LEFT JOIN ' . $wpdb->posts . ' `p` ON (`p`.`ID` = `pm`.`post_ID`) ' . $where['sql'] . $orderby . '', $where['filter'])); } return $meta_keys; } // get user meta keys public function get_user_meta_keys() { global $wpdb; $meta_keys = array(); if ($this->get('item')) { $order_condition = array( 'orderby' => 'meta_key', 'order' => 'desc', ); $orderby = $this->helper->load('db')->prepare_orderby($order_condition); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare $meta_keys = $wpdb->get_col($wpdb->prepare('SELECT DISTINCT `meta_key` FROM `' . $wpdb->usermeta . '` ' . $orderby . '')); } return $meta_keys; } // get post taxonomy keys public function get_post_taxonomy_keys() { global $wpdb; $meta_keys = array(); if ($this->get('item')) { $order_condition = array( 'orderby' => 'taxonomy', 'order' => 'desc', ); $orderby = $this->helper->load('db')->prepare_orderby($order_condition); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare $meta_keys = $wpdb->get_col($wpdb->prepare('SELECT DISTINCT `taxonomy` FROM `' . $wpdb->term_taxonomy . '` `t` ' . $orderby . '')); } return $meta_keys; } // get wm element public function get_vm_element($name, $id) { $element = '
'; $element .= ''; $element .= ''; $element .= '
'; return $element; } // page edit hook public function hook_wordpress_page_edit() { // phpcs:ignore WordPress.WP.CapitalPDangit.Misspelled $items = $this->helper->load('hooks')->get_items('wordpress', 'hook_wordpress_page_edit'); if (!empty($items)) { add_meta_box( 'e2pdf', apply_filters('e2pdf_hook_section_title', __('E2Pdf Actions', 'e2pdf'), 'hook_wordpress_page_edit'), array($this, 'hook_wordpress_page_edit_callback'), $items, 'side', 'default' ); } } // page edit callback hook public function hook_wordpress_page_edit_callback($post) { if (!empty($post->post_type)) { // phpcs:ignore WordPress.WP.CapitalPDangit.Misspelled $hooks = $this->helper->load('hooks')->get('wordpress', 'hook_wordpress_page_edit', $post->post_type); if (!empty($hooks)) { foreach ($hooks as $hook) { if ($this->helper->load('hooks')->process_hook( $hook, [ 'dataset' => $post->ID, ], 'hook_wordpress_page_edit' ) ) { $action = apply_filters( 'e2pdf_hook_action_button', array( 'html' => '

%2$s

', 'url' => $this->helper->get_url( array( 'page' => 'e2pdf', 'action' => 'export', 'id' => $hook, 'dataset' => $post->ID, ), 'admin.php?' ), 'title' => 'PDF #' . $hook, ), 'hook_wordpress_page_edit', $hook, $post->ID ); if (!empty($action)) { echo sprintf( $action['html'], $action['url'], $action['title'] ); } } } } } } // row actions hook public function hook_wordpress_row_actions($actions, $post) { if ($post && is_a($post, 'WP_User')) { if (!empty($post->ID)) { // phpcs:ignore WordPress.WP.CapitalPDangit.Misspelled $hooks = $this->helper->load('hooks')->get('wordpress', 'hook_wordpress_row_actions', '-3'); foreach ($hooks as $hook) { if ($this->helper->load('hooks')->process_hook( $hook, [ 'dataset' => $post->ID, ], 'hook_wordpress_row_actions' ) ) { $action = apply_filters( 'e2pdf_hook_action_button', array( 'html' => '%s', 'url' => $this->helper->get_url( array( 'page' => 'e2pdf', 'action' => 'export', 'id' => $hook, 'dataset' => $post->ID, ), 'admin.php?' ), 'title' => 'PDF #' . $hook, ), 'hook_wordpress_row_actions', $hook, $post->ID ); if (!empty($action)) { $actions['e2pdf_' . $hook] = sprintf( $action['html'], $action['url'], $action['title'] ); } } } } } else { if (!empty($post->post_type) && !empty($post->ID)) { // phpcs:ignore WordPress.WP.CapitalPDangit.Misspelled $hooks = $this->helper->load('hooks')->get('wordpress', 'hook_wordpress_row_actions', $post->post_type); foreach ($hooks as $hook) { if ($this->helper->load('hooks')->process_hook( $hook, [ 'dataset' => $post->ID, ], 'hook_wordpress_row_actions' ) ) { $action = apply_filters( 'e2pdf_hook_action_button', array( 'html' => '%s', 'url' => $this->helper->get_url( array( 'page' => 'e2pdf', 'action' => 'export', 'id' => $hook, 'dataset' => $post->ID, ), 'admin.php?' ), 'title' => 'PDF #' . $hook, ), 'hook_wordpress_row_actions', $hook, $post->ID ); if (!empty($action)) { $actions['e2pdf_' . $hook] = sprintf( $action['html'], $action['url'], $action['title'] ); } } } } } return $actions; } }