403Webshell
Server IP : 192.64.112.168  /  Your IP : 3.22.79.165
Web Server : Apache
System : Linux nc-ph-2300-85.bluforrest.com 4.18.0-513.9.1.el8_9.x86_64 #1 SMP Sat Dec 2 05:23:44 EST 2023 x86_64
User : expressoneac ( 1128)
PHP Version : 8.0.30
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/expressoneac/www/wp-content/plugins/mailchimp-for-wp/includes/forms/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/expressoneac/www/wp-content/plugins/mailchimp-for-wp/includes/forms//class-form-element.php
<?php

/**
 * Class MC4WP_Form_Element
 *
 * @since 3.0
 * @ignore
 * @access private
 */
class MC4WP_Form_Element
{
	/**
	 * @var string
	 */
	public $ID;

	/**
	 * @var MC4WP_Form
	 */
	public $form;

	/**
	 * @var array
	 *
	 * Can be used to set element-specific config settings. Accepts the following keys.
	 *
	 * - lists: Customized number of Mailchimp list ID's to subscribe to.
	 * - email_type: The email type
	 */
	public $config = array();

	/**
	 * @var bool
	 */
	public $is_submitted = false;

	/**
	 * @param MC4WP_Form $form
	 * @param string $id
	 * @param array $config
	 */
	public function __construct(MC4WP_Form $form, $id, array $config = array())
	{
		$this->form   = $form;
		$this->ID     = $id;
		$this->config = $config;

		$this->is_submitted = $this->form->is_submitted
								&& $this->form->config['element_id'] === $this->ID;
	}


	/**
	 * @return string
	 */
	protected function get_visible_fields()
	{
		$content = $this->form->content;
		$form    = $this->form;
		$element = $this;

		/**
		 * Filters the HTML for the form fields.
		 *
		 * Use this filter to add custom HTML to a form programmatically
		 *
		 * @param string $content
		 * @param MC4WP_Form $form
		 * @param MC4WP_Form_Element $element
		 * @since 2.0
		 */
		$visible_fields = (string) apply_filters('mc4wp_form_content', $content, $form, $element);

		return $visible_fields;
	}

	/**
	 * @return string
	 */
	protected function get_hidden_fields()
	{

		// hidden fields
		$hidden_fields  = '<label style="display: none !important;">' . __('Leave this field empty if you\'re human:', 'mailchimp-for-wp') . ' ' . '<input type="text" name="_mc4wp_honeypot" value="" tabindex="-1" autocomplete="off" /></label>';
		$hidden_fields .= '<input type="hidden" name="_mc4wp_timestamp" value="' . time() . '" />';
		$hidden_fields .= '<input type="hidden" name="_mc4wp_form_id" value="' . esc_attr($this->form->ID) . '" />';
		$hidden_fields .= '<input type="hidden" name="_mc4wp_form_element_id" value="' . esc_attr($this->ID) . '" />';

		// was "lists" parameter passed in shortcode arguments?
		if (! empty($this->config['lists'])) {
			$lists_string   = is_array($this->config['lists']) ? join(',', $this->config['lists']) : $this->config['lists'];
			$hidden_fields .= '<input type="hidden" name="_mc4wp_lists" value="' . esc_attr($lists_string) . '" />';
		}

		// was "lists" parameter passed in shortcode arguments?
		if (! empty($this->config['email_type'])) {
			$hidden_fields .= '<input type="hidden" name="_mc4wp_email_type" value="' . esc_attr($this->config['email_type']) . '" />';
		}

		return (string) $hidden_fields;
	}

	/**
	 * Get HTML string for a notice, including wrapper element.
	 *
	 * @param MC4WP_Form_Notice $notice
	 *
	 * @return string
	 */
	protected function get_notice_html(MC4WP_Form_Notice $notice)
	{
		if ($notice->text === '') {
			return '';
		}

		$html = sprintf('<div class="mc4wp-alert mc4wp-%s" role="alert"><p>%s</p></div>', esc_attr($notice->type), $notice->text);
		return $html;
	}

	/**
	 * Gets the form response string
	 *
	 * @param boolean $force_show
	 * @return string
	 */
	public function get_response_html($force_show = false)
	{
		$html = '';
		$form = $this->form;

		if ($this->is_submitted || $force_show) {
			foreach ($this->form->notices as $notice) {
				$html .= $this->get_notice_html($notice);
			}
		}

		/**
		 * Filter the form response HTML
		 *
		 * Use this to add your own HTML to the form response. The form instance is passed to the callback function.
		 *
		 * @since 3.0
		 *
		 * @param string $html The complete HTML string of the response, excluding the wrapper element.
		 * @param MC4WP_Form $form The form object
		 */
		$html = (string) apply_filters('mc4wp_form_response_html', $html, $form);

		// wrap entire response in div, regardless of a form was submitted
		$html = '<div class="mc4wp-response">' . $html . '</div>';
		return $html;
	}

	/**
	 * @return string
	 */
	protected function get_response_position()
	{
		$position = 'after';
		$form     = $this->form;

		// check if content contains {response} tag
		if (strpos($this->form->content, '{response}') !== false) {
			return '';
		}

		/**
		 * Filters the position for the form response.
		 *
		 * Valid values are "before" and "after". Will have no effect if `{response}` is used in the form content.
		 *
		 * @param string $position
		 * @param MC4WP_Form $form
		 * @since 2.0
		 */
		$response_position = (string) apply_filters('mc4wp_form_response_position', $position, $form);

		return $response_position;
	}

	/**
	 * Get HTML to be added _before_ the HTML of the form fields.
	 *
	 * @return string
	 */
	protected function get_html_before_fields()
	{
		$html = '';
		$form = $this->form;

		/**
		 * Filters the HTML before the form fields.
		 *
		 * @param string $html
		 * @param MC4WP_Form $form
		 * @ignore
		 */
		$html = (string) apply_filters('mc4wp_form_before_fields', $html, $form);

		if ($this->get_response_position() === 'before') {
			$html = $html . $this->get_response_html();
		}

		return $html;
	}

	/**
	 * Get HTML to be added _after_ the HTML of the form fields.
	 *
	 * @return string
	 */
	protected function get_html_after_fields()
	{
		$html = '';
		$form = $this->form;

		/**
		 * Filters the HTML after the form fields.
		 *
		 * @param string $html
		 * @param MC4WP_Form $form
		 * @ignore
		 */
		$html = (string) apply_filters('mc4wp_form_after_fields', $html, $form);

		if ($this->get_response_position() === 'after') {
			$html = $this->get_response_html() . $html;
		}

		return $html;
	}

	/**
	 * Get all HTMl attributes for the form element
	 *
	 * @return string
	 */
	protected function get_form_element_attributes()
	{
		$form                  = $this;
		$form_action_attribute = null;

		$attributes = array(
			'id'    => $this->ID,
			'class' => $this->get_css_classes(),
		);

		/**
		 * Filters the `action` attribute of the `<form>` element.
		 *
		 * Defaults to `null`, which means no `action` attribute will be printed.
		 *
		 * @param string $form_action_attribute
		 * @param MC4WP_Form $form
		 */
		$form_action_attribute = apply_filters('mc4wp_form_action', $form_action_attribute, $form);
		if (is_string($form_action_attribute)) {
			$attributes['action'] = $form_action_attribute;
		}

		/**
		 * Filters all attributes to be added to the `<form>` element
		 *
		 * @param array $attributes Key-value pairs of attributes.
		 * @param MC4WP_Form $form
		 */
		$attributes = (array) apply_filters('mc4wp_form_element_attributes', $attributes, $form);

		// hardcoded attributes, can not be changed.
		$attributes['method']    = 'post';
		$attributes['data-id']   = $this->form->ID;
		$attributes['data-name'] = $this->form->name;

		// build string of key="value" from array
		$string = '';
		foreach ($attributes as $name => $value) {
			$string .= sprintf('%s="%s" ', $name, esc_attr($value));
		}

		return $string;
	}

	/**
	 * @param array|null $config Use this to override the configuration for this form element
	 * @return string
	 */
	public function generate_html(array $config = null)
	{
		if ($config) {
			$this->config = $config;
		}

		// return empty string if form is in trash
		if ($this->form->status !== 'publish') {
			return '';
		}

		// Start building content string
		$opening_html  = '<!-- Mailchimp for WordPress v' . MC4WP_VERSION . ' - https://wordpress.org/plugins/mailchimp-for-wp/ -->';
		$opening_html .= '<form ' . $this->get_form_element_attributes() . '>';
		$before_fields = $this->get_html_before_fields();
		$fields        = '';
		$after_fields  = $this->get_html_after_fields();
		$closing_html  = '</form><!-- / Mailchimp for WordPress Plugin -->';

		if (
			! $this->is_submitted
			|| ! $this->form->settings['hide_after_success']
			|| $this->form->has_errors()
		) {
			// add HTML for fields + wrapper element.
			$fields = '<div class="mc4wp-form-fields">' .
				$this->get_visible_fields() .
				'</div>' .
				$this->get_hidden_fields();
		}

		// concatenate everything
		$output = $opening_html .
					$before_fields .
					$fields .
					$after_fields .
					$closing_html;

		return $output;
	}

	/**
	 * Get a space separated list of CSS classes for this form
	 *
	 * @return string
	 */
	protected function get_css_classes()
	{
		$classes = array();
		$form    = $this->form;

		$classes[] = 'mc4wp-form';
		$classes[] = 'mc4wp-form-' . $form->ID;

		// Add form classes if this specific form element was submitted
		if ($this->is_submitted) {
			$classes[] = 'mc4wp-form-submitted';

			if (! $form->has_errors()) {
				$classes[] = 'mc4wp-form-success';
			} else {
				$classes[] = 'mc4wp-form-error';
			}
		}

		// add class for CSS targeting in custom stylesheets
		if (! empty($form->settings['css'])) {
			if (strpos($form->settings['css'], 'theme-') === 0) {
				$classes[] = 'mc4wp-form-theme';
			}

			$classes[] = 'mc4wp-form-' . $form->settings['css'];
		}

		// add classes from config array
		if (! empty($this->config['element_class'])) {
			$classes = array_merge($classes, explode(' ', $this->config['element_class']));
		}

		/**
		 * Filters `class` attributes for the `<form>` element.
		 *
		 * @param array $classes
		 * @param MC4WP_Form $form
		 */
		$classes = apply_filters('mc4wp_form_css_classes', $classes, $form);

		return implode(' ', $classes);
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit