Ir para conteúdo
wellingtonmelo

[Resolvido] Como inserir PHP dentro do HTML que já está dentro do PHP?

Recommended Posts

O nome do arquivo é: wp-quiz-pro.php , ele fica no diretório principal do plugin.

 

alterei o arquivo, mas infelizmente ainda continua a tela branca

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para completar as informações, também tem esse outro arquivo aqui que recebe essa $settings

o nome dele é: class-wp-quiz-pro.php

ele fica /inc/class-wp-quiz-pro.php

 

<?php
/**
 * Generic WP_Quiz_Pro class. Extended by library specific classes.
 */
class WP_Quiz_Pro {

	/**
	 * quiz ID
	 */
	public $id = 0;

	/**
	 * quiz settings
	 */
	public $settings = array();

	/**
	 * quiz questions
	 */
	public $questions = array();

	/**
	 * quiz results
	 */
	public $results = array();

	/**
	 * quiz type
	 */
	public $type = '';

	/**
	 * quiz ad codes
	 */
	public $ad_codes = array();

	/**
	 * unique identifier
	 */
	public $identifier = 0;

	/**
	 * Constructor
	 */
	public function __construct( $id ) {

		$options 			= get_option( 'wp_quiz_pro_default_settings' );

		$this->id 			= $id;
		$this->settings 	= get_post_meta( $id, 'settings', true );
		$this->questions 	= get_post_meta( $id, 'questions', true );
		$this->results 		= get_post_meta( $id, 'results', true );
		$this->type			= get_post_meta( $id, 'quiz_type', true );
		$this->ad_codes 	= $options['ad_code'];
		$this->identifier 	= 'wp_quiz_' . $this->id;
	}

	/**
	 * @return string unique identifier for quiz
	 */
	protected function get_identifier() {
		return $this->identifier;
	}

	/**
	 * Output the HTML
	 *
	 * @return string HTML
	 */
	public function render_public_quiz() {

		$html[] = '<!-- wp quiz -->';
		$html[] = '<div class="wq_quizCtr ' . $this->settings['question_layout'] . ' ' . $this->type . '_quiz" ' . $this->get_data_attrs() . '>';
		$html[] = '   	<div class="wq_quizProgressBarCtr">';
		$html[] = '        ' . $this->get_html_progress_bar();
		$html[] = '   	</div>';
		$html[] = '   	<div class="wq_questionsCtr" >';
		$html[] = '        ' . $this->get_html_questions();
		$html[] = '   	</div>';
		$html[] = '   	<div class="wq_resultsCtr">';
		$html[] = '        ' . $this->get_html_results();
		$html[] = '   	</div>';
		$html[] = '   	<!-- force action -->';
		$html[] = '        ' . $this->get_html_force_action();
		$html[] = '   	<!--// force action-->';
		$html[] = '   	<!-- quiz timer -->';
		$html[] = '        <div class="timerPlaceholder"></div>';
		$html[] = '   	<!--// quiz timer-->';
		$html[] = '   	<!-- retake button -->';
		$html[] = '        ' . $this->get_html_retake_button();
		$html[] = '   	<!--// retake button-->';
		$html[] = '</div>';
		$html[] = '<!--// wp quiz-->';

		$wp_quiz = implode( "\n", $html );
		$wp_quiz = apply_filters( 'wp_quiz_output', $wp_quiz, $this->id, $this->settings );

		return $wp_quiz;
	}

	public function get_data_attrs() {

		global $post;
		$id  = $post ? $post->ID : $this->id;
		$url = $post ? get_permalink( $post->ID ) : '';

		$data = '';
		$data .= 'data-current-question="0" ';
		$data .= 'data-questions-answered="0" ';
		$data .= 'data-questions="' . count( $this->questions ) . '" ';
		$data .= 'data-transition_in="' . $this->settings['animation_in'] . '" ';
		$data .= 'data-transition_out="' . $this->settings['animation_out'] . '" ';
		$data .= 'data-correct-answered="0" ';
		$data .= 'data-force-action="' . ( isset( $this->settings['force_action'] ) ? $this->settings['force_action'] : '' ) . '" ';
		$data .= 'data-quiz-pid="' . $this->id . '" ';
		$data .= 'data-share-url="' . $url . '" ';
		$data .= 'data-post-title="' . get_the_title( $id ) . '" ';
		$data .= 'data-retake-quiz="' . $this->settings['restart_questions'] . '" ';
		$data .= 'data-question-layout="' . $this->settings['question_layout'] . '" ';
		$data .= 'data-featured-image="' . wp_get_attachment_url( get_post_thumbnail_id( $id ) ) . '" ';
		$data .= 'data-excerpt="' . get_post_field( 'post_excerpt', $this->id ) . '"';
		$data .= 'data-ajax-url="' . admin_url( 'admin-ajax.php' ) . '"';
		$data .= 'data-auto-scroll="' . $this->settings['auto_scroll'] . '" ';

		$data = apply_filters( 'wp_quiz_data_attrs', $data, $this->id, $this->settings );

		return $data;
	}

	public function get_html_progress_bar() {

		$display = 'single' === $this->settings['question_layout'] ? 'none' : 'block';
		$display = 'swiper' === $this->type ? 'none' : $display;
		$html[] = '<!-- progress bar -->';
		$html[] = '<div class="wq_quizProgressBarCtr" style="display:' . $display . '">';
		$html[] = '<div class="wq_quizProgressBar">';
		$html[] = '<span style="background-color:' . $this->settings['bar_color'] . '" class="wq_quizProgressValue"></span>';
		$html[] = '</div>';
		$html[] = '</div>';
		$html[] = '<!--// progress bar-->';

		$progress_bar = implode( "\n", $html );

		return $progress_bar;
	}

	public function get_html_share() {

		$html[] = '<!-- social share -->';
		$html[] = '<center><div class="wq_shareCtr">';
		if ( isset( $this->settings['share_buttons'] ) ) {
			$share_buttons = $this->settings['share_buttons'];
			$html[] = '			
			<p style="font-size:14px;">' . esc_html__( '', 'wp-quiz-pro' ) . '</p>';
			if ( in_array( 'fb', $share_buttons ) ) {
				$html[] = '<button class="btn-share-facebook"><i class="fa fa-facebook-square fa-lg" aria-hidden="true"></i>&nbsp;COMPARTILHAR</button>';
			}
			if ( in_array( 'tw', $share_buttons ) ) {
				$html[] = '<button class="replay-test" value="Refresh" onClick="window.location.reload()"><i class="fa fa-refresh" aria-hidden="true"></i>&nbsp;FAZER NOVAMENTE</button>';
			}

		}
		$html[] = '</div></center>';
		$html[] = '<!--// social share-->';

		$social_shares = implode( "\n", $html );
		$social_shares = apply_filters( 'wp_quiz_shares', $social_shares, $this->id, $this->settings );

		return $social_shares;
	}

	public function get_html_force_action() {

		$html[] = '<div class="wq_quizForceActionCtr" style="display:none;">';
		$html[] = '<div class="wq_quizEmailCtr" style="display:none;">';
		$html[] = '<form id="wq_infoForm" action="" method="post">';
		$html[] = '<p>' . esc_html__( 'Just tell us who you are to view your results !', 'wp-quiz-pro' ) . '</p>';
		$html[] = '<div><label>' . esc_html__( 'Your first name :', 'wp-quiz-pro' ) . '</label><input type="text" id="wq_inputName"/></div>';
		$html[] = '<div><label>' . esc_html__( 'Your email address :', 'wp-quiz-pro' ) . '</label><input type="email" id="wq_inputEmail"/></div>';
		$html[] = '<p><button type="submit" id="" style="background:' . $this->settings['bar_color'] . '">' . __( 'Show my results &gt;&gt;', 'wp-quiz-pro' ) . '</button></p>';
		$html[] = '</form>';
		$html[] = '</div>';
		$html[] = '<div class="wq_quizForceShareCtr" style="display:none;">';
		$html[] = '<p>' . esc_html__( 'Please share this quiz to view your results . ', 'wp-quiz-pro' ) . '</p>';
		$html[] = '<button class="wq_forceShareFB"><i class="fa fa-facebook icon"></i><span>' . esc_html__( 'Facebook', 'wp-quiz-pro' ) . '</span></button>';
		$html[] = '</div>';
		$html[] = '</div>';

		$force_action = implode( "\n", $html );

		$force_action = apply_filters( 'wp_quiz_capture_email', $force_action, $this->id, $this->settings );

		return $force_action;
	}


	public function get_html_retake_button() {

		$html[] = '<div class="wq_retakeQuizCtr" >';
		$html[] = '<button style="display:none;" class="wq_retakeQuizBtn"><i class="fa fa-undo"></i>&nbsp;' . esc_html__( 'PLAY AGAIN !', 'wp-quiz-pro' ) . '</button>';
		$html[] = '</div>';

		$retake_button = implode( "\n", $html );

		$retake_button = apply_filters( 'wp_quiz_capture_email', $retake_button, $this->id, $this->settings );

		return $retake_button;
	}

	/**
	 * Include quiz assets
	 */
	public function enqueue_scripts() {

		wp_enqueue_script( 'wp_quiz-front-js', WP_QUIZ_PRO_ASSETS_URL . 'js/main.min.js', array( 'jquery', 'semantic-transition-js', 'semantic-embed-js', 'tinder-js' ), WP_QUIZ_PRO_VERSION, true );
		wp_enqueue_script( 'semantic-transition-js', WP_QUIZ_PRO_ASSETS_URL . 'js/transition.min.js', array( 'jquery' ), WP_QUIZ_PRO_VERSION, true );
		wp_enqueue_script( 'semantic-embed-js', WP_QUIZ_PRO_ASSETS_URL . 'js/embed.min.js', array( 'jquery' ), WP_QUIZ_PRO_VERSION, true );
		wp_enqueue_script( 'tinder-js', WP_QUIZ_PRO_ASSETS_URL . 'js/jquery.jTinder.min.js', array( 'jquery', 'hammer-js', 'dynamic-js', 'flip-js' ), WP_QUIZ_PRO_VERSION, true );
		wp_enqueue_script( 'hammer-js', WP_QUIZ_PRO_ASSETS_URL . 'js/hammer.min.js', array( 'jquery' ), WP_QUIZ_PRO_VERSION, true );
		wp_enqueue_script( 'dynamic-js', WP_QUIZ_PRO_ASSETS_URL . 'js/dynamics.min.js', array( 'jquery' ), WP_QUIZ_PRO_VERSION, true );
		wp_enqueue_script( 'flip-js', WP_QUIZ_PRO_ASSETS_URL . 'js/jquery.flip.min.js', array( 'jquery' ), WP_QUIZ_PRO_VERSION, true );

		wp_localize_script( 'wp_quiz-front-js', 'wq_l10n', array(
				'correct' 				=> esc_html__( 'Correct !', 'wp-quiz-pro' ),
				'wrong'					=> esc_html__( 'Wrong !', 'wp-quiz-pro' ),
				'captionTrivia' 		=> esc_html__( 'You got %%score%% out of %%total%%', 'wp-quiz-pro' ),
				'captionTriviaFB'	 	=> esc_html__( 'I got %%score%% out of %%total%%, and you?', 'wp-quiz-pro' ),
				'youVoted'				=> esc_html__( 'You voted', 'wp-quiz-pro' ),
				'nonce'					=> wp_create_nonce( 'ajax-quiz-content' ),
			)
		);

		// This will be added to the bottom of the page as <head> has already been processed by WordPress sorry.
		wp_enqueue_style( 'semantic-transition-css', WP_QUIZ_PRO_ASSETS_URL . 'css/transition.min.css', array(), WP_QUIZ_PRO_VERSION );
		wp_enqueue_style( 'semantic-embed-css', WP_QUIZ_PRO_ASSETS_URL . 'css/embed.min.css', array(), WP_QUIZ_PRO_VERSION );
		wp_enqueue_style( 'wp_quiz-front-css', WP_QUIZ_PRO_ASSETS_URL . 'css/main.css', false, WP_QUIZ_PRO_VERSION );
		if ( 'traditional' === $this->settings['skin'] ) {
			wp_enqueue_style( 'traditional-skin-css', WP_QUIZ_PRO_ASSETS_URL . 'css/traditional-skin.css', array(), WP_QUIZ_PRO_VERSION );
		} else if ( 'flat' === $this->settings['skin'] ) {
			wp_enqueue_style( 'flat-skin-css', WP_QUIZ_PRO_ASSETS_URL . 'css/flat-skin.css', array(), WP_QUIZ_PRO_VERSION );
		}

		do_action( 'wp_quiz_register_public_styles' );
	}
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Show, pega o backup de wp-quiz-pro.php e volta ele ao que era antes, por enquanto não vamos precisar mexer lá.

Em seguida vai em single.php, remove tudo que ta dentro de "/////// ALTEREI AQUI ///////" e coloca esse trecho de código dentro dessas tags pra gente debugar:

<?php 
echo "<pre>";
print_r(wp_quiz_pro());
echo "</pre>";
exit();
?>

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 minutos atrás, wellingtonmelo disse:

Pronto, coloquei lá, apareceu as informações la no single!

 

Obrigado por tudo, vai dar certo!!

 

Show, fez certinho, vi aqui.

Agora você vai novamente em single.php e remove aquele código que ta dentro de ///////// ALTEREI AQUI ////////// e coloca esse no lugar:

<?php 
echo "<pre>";
print_r(prepare_url_facebook());
echo "</pre>";
?>

Em seguida, vai em wp-quiz-pro.php e troca o código inteiro por esse e faz o teste:

<?php
/**
 * Plugin Name: Testes Pop
 * Plugin URI:  https://testespop.com.br
 * Description: O TestesPop permite que você adicione facilmente testes para o facebook, ágeis e modernos ao seu site ou blog! Aumente o engajamento e os compartilhamentos enquanto fatura continuamente.
 * Version:     1.1.1
 * Author:      TestesPop
 * Author URI:  http://testespop.com.br
 *
 * Text Domain: testes-pop
 * Domain Path: /languages/
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit; // disable direct access
}

if ( ! class_exists( 'WP_Quiz_Pro_Plugin' ) ) :

	/**
	 * Register the plugin.
	 *
	 * Display the administration panel, insert JavaScript etc.
	 */
	class WP_Quiz_Pro_Plugin {

		/**
		 * Hold plugin version
		 *
		 * @var string
		 */
		public $version = '1.1.1';

		/**
		 * Hold an instance of WP_Quiz_Pro_Plugin class.
		 *
		 * @var WP_Quiz_Pro_Plugin
		 */
		protected static $instance = null;

		/**
		 * Hold the current quiz instance
		 *
		 * @var WP_Quiz_Pro
		 */
		public $quiz = null;

		/**
		 * Main WP_Quiz_Pro_Plugin instance.
		 * @return WP_Quiz_Pro_Plugin - Main instance.
		 */
		public static function get_instance() {

			if ( is_null( self::$instance ) ) {
				self::$instance = new WP_Quiz_Pro_Plugin;
			}

			return self::$instance;
		}
		/**
		 * You cannot clone this class.
		 */
		public function __clone() {
			_doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'wp-quiz-pro' ), $this->version );
		}

		/**
		 * You cannot unserialize instances of this class.
		 */
		public function __wakeup() {
			_doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'wp-quiz-pro' ), $this->version );
		}

		/**
		 * The Constructor
		 */
		private function __construct() {

			$this->define_constants();
			$this->includes();
			$this->hooks();
			$this->setup_shortcode();
		}

		/**
		 * Define WP Quiz constants
		 */
		private function define_constants() {

			define( 'WP_QUIZ_PRO_VERSION',    $this->version );
			define( 'WP_QUIZ_PRO_BASE_URL',   trailingslashit( plugins_url( 'wp-quiz-pro' ) ) );
			define( 'WP_QUIZ_PRO_ASSETS_URL', trailingslashit( WP_QUIZ_PRO_BASE_URL . 'assets' ) );
			define( 'WP_QUIZ_PRO_PATH',       plugin_dir_path( __FILE__ ) );
		}

		/**
		 * Load required classes
		 */
		private function includes() {

			// Auto loader
			spl_autoload_register( array( $this, 'autoloader' ) );

			new WP_Quiz_Pro_Admin;
		}

		/**
		 * Autoload classes
		 */
		public function autoloader( $class ) {

			$dir = WP_QUIZ_PRO_PATH . 'inc' . DIRECTORY_SEPARATOR;
			$class_file_name = 'class-' . str_replace( array( 'wp_quiz_pro_', '_' ), array( '', '-' ), strtolower( $class ) ) . '.php';
			if ( file_exists( $dir . $class_file_name ) ) {
				require $dir . $class_file_name;
			}
		}

		/**
		 * Register the [wp_quiz_pro] shortcode.
		 */
		private function setup_shortcode() {

			add_shortcode( 'wp_quiz_pro', array( $this, 'register_shortcode' ) );
		}

		/**
		 * Hook WP Quiz into WordPress
		 */
		private function hooks() {

			// Common
			add_action( 'init', array( $this, 'load_plugin_textdomain' ) );
			add_action( 'init', array( $this, 'register_post_type' ) );
			add_action( 'init', array( $this, 'embeded_output' ) );

			// Frontend
			add_action( 'wp_head', array( $this, 'inline_script' ), 1 );
			add_filter( 'the_content', array( $this, 'create_quiz_page' ) );

			// Ajax
			add_action( 'wp_ajax_wq_quizResults', array( $this, 'save_quiz_results' ) );
			add_action( 'wp_ajax_nopriv_wq_quizResults', array( $this, 'save_quiz_results' ) );

			add_action( 'wp_ajax_wq_submitInfo', array( $this, 'save_quiz_user_info' ) );
			add_action( 'wp_ajax_nopriv_wq_submitInfo', array( $this, 'save_quiz_user_info' ) );

			add_action( 'wp_ajax_wq_submitFbInfo', array( $this, 'save_quiz_fb_user_info' ) );
			add_action( 'wp_ajax_nopriv_wq_submitFbInfo', array( $this, 'save_quiz_fb_user_info' ) );

			add_action( 'wp_ajax_check_image_file', array( $this, 'check_image_file' ) );
			add_action( 'wp_ajax_check_video_file', array( $this, 'check_video_file' ) );
			add_action( 'wp_ajax_dismiss_imagick_notice', array( $this, 'dismiss_imagick_notice' ) );
			add_action( 'wp_ajax_dismiss_gdlibrary_notice', array( $this, 'dismiss_gdlibrary_notice' ) );
			add_action( 'wp_ajax_wpquiz_get_debug_log', array( $this, 'wp_quiz_pro_get_debug_log' ) );

			add_action( 'wp_ajax_connect_aweber', array( $this, 'connect_aweber' ) );

			// FB SDK version 2.9 fix
			if ( isset( $_GET['fbs'] ) && ! empty( $_GET['fbs'] ) ) {
				add_action( 'template_redirect', array( $this, 'fb_share_fix' ) );
			}
		}

		/**
		 * Initialise translations
		 */
		public function load_plugin_textdomain() {

			load_plugin_textdomain( 'wp-quiz-pro', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
		}

		/**
		 * Register Quiz post type
		 */
		public function register_post_type() {

			$labels = array(
				'name'               => __( 'Testes Pop', 'wp-quiz-pro' ),
				'menu_name'          => __( 'Testes Pop', 'wp-quiz-pro' ),
				'singular_name'      => __( 'TP WP', 'wp-quiz-pro' ),
				'name_admin_bar'     => _x( 'Testes Pop', 'name admin bar', 'wp-quiz-pro' ),
				'all_items'          => __( 'Todos os testes', 'wp-quiz-pro' ),
				'search_items'       => __( 'Procurar teste', 'wp-quiz-pro' ),
				'add_new'            => _x( 'Adicionar', 'quiz', 'wp-quiz-pro' ),
				'add_new_item'       => __( 'Adicionar novo teste', 'wp-quiz-pro' ),
				'new_item'           => __( 'Novo testes', 'wp-quiz-pro' ),
				'view_item'          => __( 'Ver teste', 'wp-quiz-pro' ),
				'edit_item'          => __( 'Editar teste', 'wp-quiz-pro' ),
				'not_found'          => __( 'Nenhum teste encontrado.', 'wp-quiz-pro' ),
				'not_found_in_trash' => __( 'Nenhum teste encontrado na lixeira.', 'wp-quiz-pro' ),
				'parent_item_colon'  => __( 'Teste pai', 'wp-quiz-pro' ),
			);

			$args = array(
				'labels'             => $labels,
				'description'        => __( 'Mantém os testes e seus dados.', 'wp-quiz-pro' ),
				'menu_position'      => 5,
				'menu_icon'			 => 'dashicons-editor-help',
				'public'             => true,
				'publicly_queryable' => true,
				'show_ui'            => true,
				'show_in_menu'       => true,
				'query_var'          => true,
				'capability_type'    => 'post',
				'has_archive'        => true,
				'hierarchical'       => false,
				'supports'           => array( 'title', 'author', 'thumbnail', 'excerpt' ),
			);

			register_post_type( 'wp_quiz', $args );

			if ( false === get_option( 'wp_quiz_pro_version' ) ) {
				flush_rewrite_rules();
				update_option( 'wp_quiz_pro_version', WP_QUIZ_PRO_VERSION );
			}
		}

		/**
		 * Shortcode used to display quiz
		 *
		 * @return string HTML output of the shortcode
		 */
		public function register_shortcode( $atts ) {

			if ( ! isset( $atts['id'] ) ) {
				return false;
			}

			// we have an ID to work with
			$quiz = get_post( $atts['id'] );

			// check if ID is correct
			if ( ! $quiz || 'wp_quiz' !== $quiz->post_type ) {
				return "<!-- wp_quiz {$atts['id']} not found -->";
			}

			// lets go
			$this->set_quiz( $atts['id'] );
			$this->quiz->enqueue_scripts();

			return $this->quiz->render_public_quiz();
		}

		/**
		 * Set the current quiz
		 */
		public function set_quiz( $id ) {
			$quiz_type = get_post_meta( $id, 'quiz_type', true );
			$quiz_type = str_replace( '_quiz', '', $quiz_type );
			$quiz_type = 'WP_Quiz_Pro_' . ucwords( $quiz_type ) . '_Quiz';
			$this->quiz = new $quiz_type( $id );
		}

		/**
		 * [create_quiz_page description]
		 * @param  [type] $content [description]
		 * @return [type]          [description]
		 */
		public function create_quiz_page( $content ) {

			global $post;

			if ( 'wp_quiz' !== $post->post_type ) {
				return $content;
			}

			if ( ! is_single() ) {
				return $content;
			}

			$quiz_html = $this->register_shortcode( array( 'id' => $post->ID ) );

			return $quiz_html . $content;
		}

		/**
		 * [save_quiz_results description]
		 * @return [type] [description]
		 */
		public function save_quiz_results() {

			if ( ! wp_verify_nonce( $_POST['_nonce'], 'ajax-quiz-content' ) ) {
				return;
			}

			$correct   = isset( $_POST['correct'] ) ? absint( $_POST['correct'] ) : 0;
			$rid       = isset( $_POST['rid'] ) ? $_POST['rid'] : '';
			$pid       = absint( $_POST['pid'] );
			$type      = sanitize_text_field( $_POST['type'] );
			$user_ip   = $this->get_ip();
			$user_id   = get_current_user_id();
			$user_info = get_userdata( $user_id );
			$username  = is_user_logged_in() ? $user_info->user_login : 'Guest';
			$result    = '';

			$results = get_post_meta( $pid, 'results', true );

			if ( 'trivia' === $type ) {
				$rid = '';
				foreach ( $results as $result ) {
					if ( $result['min'] <= $correct && $result['max'] >= $correct ) {
						$result = $result['title'];
						break;
					}
				}
			} else if ( 'personality' === $type ) {
				for ( $i = 0; $i < count( $results ); $i++ ) {
					if ( $i == $rid ) {
						$result = $results[ $i ]['title'];
						break;
					}
				}
			} else if ( 'swiper' === $type ) {
				$results = $_POST['results'];
				$questions 	= get_post_meta( $pid, 'questions', true );
				foreach ( $questions as $q_key => $question ) {
					foreach ( $results as $key => $result ) {
						if ( $question['uid'] == $key ) {
							if ( '0' == $result ) {
								$questions[ $q_key ]['votesDown'] = $question['votesDown'] + 1;
							} else {
								$questions[ $q_key ]['votesUp'] = $question['votesUp'] + 1;
							}
						}
					}
				}
				update_post_meta( $pid, 'questions', $questions );
				$result = '';
			}

			// Save Result
			$settings = get_option( 'wp_quiz_pro_default_settings' );
			if ( isset( $settings['players_tracking'] ) && 1 === $settings['players_tracking'] ) {
				global $wpdb;
				$wpdb->insert(
					$wpdb->prefix . 'wp_quiz_players',
					array(
						'pid'               => $pid,
						'date'       		=> date( 'Y-m-d', time() ),
						'user_ip'           => $user_ip,
						'username'          => $username,
						'correct_answered'  => $correct,
						'result'            => $result,
						'quiz_type'         => $type,
					),
					array( '%d', '%s', '%s', '%s', '%d', '%s', '%s' )
				);
			}

			die( 'SUCCESS!' );
		}

		/**
		 * [save_quiz_user_info description]
		 * @return [type] [description]
		 */
		public function save_quiz_user_info() {

			if ( ! wp_verify_nonce( $_POST['_nonce'], 'ajax-quiz-content' ) ) {
				return;
			}

			$output = array( 'status' => 1 );

			if ( is_email( $_POST['email'] ) ) {

				global $wpdb;
				$username	= sanitize_text_field( $_POST['username'] );
				$email		= sanitize_email( $_POST['email'] );
				$pid		= absint( $_POST['pid'] );

				$this->subscribe_user( $pid, $username, $email );
				$result = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wp_quiz_emails WHERE email = '" . $email . "'" );

				if ( ! $result ) {
					//Save info
					$wpdb->insert(
						$wpdb->prefix . 'wp_quiz_emails',
						array(
							'pid'      => $pid,
							'username' => $username,
							'email'    => $email,
							'date'     => date( 'Y-m-d', time() ),
						),
						array( '%d', '%s', '%s', '%s' )
					);
				}

				$output['status'] = 2;
			}

			wp_send_json( $output );
		}

		/**
		 * [save_quiz_fb_user_info description]
		 * @return [type] [description]
		 */
		public function save_quiz_fb_user_info() {

			if ( ! wp_verify_nonce( $_POST['_nonce'], 'ajax-quiz-content' ) ) {
				return;
			}

			$output = array( 'status' => 1 );
			if ( ! empty( $_POST['user'] ) ) {
				global $wpdb;

				$user = $_POST['user'];
				$result = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wp_quiz_fb_users WHERE uid = '" . $user['id'] . "'" );

				if ( ! $result ) {
					$wpdb->insert(
						$wpdb->prefix . 'wp_quiz_fb_users',
						array(
							'uid'			=> absint( $user['id'] ),
							'email'			=> isset( $user['email'] ) ? $user['email'] : '',
							'first_name'	=> $user['first_name'],
							'last_name'		=> $user['last_name'],
							'gender'		=> isset( $user['gender'] ) ? $user['gender'] : '',
							'picture'		=> isset( $user['picture'] ) ? $user['picture'] : '',
							'friends'		=> isset( $user['friends'] ) ? serialize( $user['friends'] ) : '',
							'created_at'	=> date( 'Y-m-d', time() ),
							'updated_at'	=> date( 'Y-m-d', time() ),
						),
						array( '%d', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )
					);

					$user['insert_id'] = $wpdb->insert_id;
				} else {
					$user['insert_id'] = $result->id;
				}

				if ( 'user' === $_POST['profile'] ) {
					$return = $this->generate_result_user_image( $_POST['pid'], $user );
				} else {
					$return = $this->generate_result_friend_image( $_POST['pid'], $user );
				}

				if ( ! empty( $return['src'] ) ) {
					$output['src'] = $return['src'];
					$output['desc'] = $return['desc'];
					$output['key'] = $return['key'];
					$output['status'] = 2;
				} else {
					$output['error'] = $return['error'];
				}
			}

			wp_send_json( $output );
		}

		/**
		 * [generate_result_user_image description]
		 * @param  [type] $post_id [description]
		 * @param  [type] $user    [description]
		 * @return [type]          [description]
		 */
		public function generate_result_user_image( $post_id, $user ) {
			global $wpdb;

			$return		= array();
			$results	= get_post_meta( $post_id, 'results', true );

			if ( extension_loaded( 'imagick' ) && ! empty( $results ) ) {

				$index 	= array_rand( $results );
				$result	= $results[ $index ];
				$result['key'] = $index;

				$play = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wp_quiz_fb_plays WHERE user_id = '" . $user['insert_id'] . "' AND pid = '" . $post_id . "'" );

				if ( ! $play ) {
					$wpdb->insert(
						$wpdb->prefix . 'wp_quiz_fb_plays',
						array(
							'user_id'	=> absint( $user['insert_id'] ),
							'pid'		=> absint( $post_id ),
						),
						array( '%d', '%d' )
					);
				}

				$names = array(
					'user_first_name'	=> $user['first_name'],
					'user_last_name'	=> $user['last_name'],
					'friend_first_name'	=> '',
					'friend_last_name'	=> '',
				);

				$profile = 'https://graph.facebook.com/' . $user['id'] . '/picture?width=320&height=320';
				$profile = $this->get_redirect_url( $profile );

				$data 	= $this->generate_fb_result( $post_id, $result, $profile, $names );
				$return	= $data;
			}

			return $return;
		}

		public function generate_result_friend_image( $post_id, $user ) {
			global $wpdb;

			$return 	= array();
			$results 	= get_post_meta( $post_id, 'results', true );

			if ( extension_loaded( 'imagick' ) && ! empty( $results ) && ! empty( $user['friends'] ) ) {

				$index 	= array_rand( $results );
				$result	= $results[ $index ];
				$result['key'] = $index;

				$index_2	= array_rand( $user['friends'] );
				$friend		= $user['friends'][ $index_2 ];

				$play = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wp_quiz_fb_plays WHERE user_id = '" . $user['insert_id'] . "' AND pid = '" . $post_id . "'" );

				if ( ! $play ) {
					$wpdb->insert(
						$wpdb->prefix . 'wp_quiz_fb_plays',
						array(
							'user_id'	=> absint( $user['insert_id'] ),
							'pid'		=> absint( $post_id ),
						),
						array( '%d', '%d' )
					);
				}

				$profile = 'https://graph.facebook.com/' . $friend['id'] . '/picture?width=320&height=320';
				$profile = $this->get_redirect_url( $profile );

				$friend_name = explode( ' ', $friend['name'] );

				$names = array(
					'user_first_name'	=> $user['first_name'],
					'user_last_name'	=> $user['last_name'],
					'friend_first_name'	=> $friend_name[0],
					'friend_last_name'	=> $friend_name[1],
				);

				$data 	= $this->generate_fb_result( $post_id, $result, $profile, $names );
				$return	= $data;
			}

			return $return;
		}

		public function generate_fb_result( $post_id, $result, $profile, $names ) {

			$return = array( 'src' => '', 'desc' => '', 'error' => '' );

			try {

				$options 	= get_option( 'wp_quiz_pro_default_settings' );
				$settings	= get_post_meta( $post_id, 'settings', true );
				$find 		= array( '%%nomeusuario%%', '%%sobrenome%%', '%%nomeamigo%%', '%%sobrenomeamigo%%' );
				$replace 	= array( $names['user_first_name'], $names['user_last_name'], $names['friend_first_name'], $names['friend_last_name'] );
				$title 		= str_replace( $find, $replace, $result['title'] );
				$desc		= str_replace( $find, $replace, $result['desc'] );
				$upload_dir = wp_upload_dir();

				// Load images
				$profile = new Imagick( $profile );
				$profile->resizeImage( $result['proImageWidth'], $result['proImageHeight'], imagick::FILTER_LANCZOS, 0.9 );
				$profile->roundCorners( $result['imageRadius'], $result['imageRadius'] );

				// Create new image from result
				$output = new Imagick( str_replace( $upload_dir['baseurl'], $upload_dir['basedir'], $result['image'] ) );
				$output->compositeImage( $profile, Imagick::COMPOSITE_DEFAULT, $result['pos_x'], $result['pos_y'] );

				// Annotate it
				if ( ! empty( $title ) ) {

					$draw = new ImagickDraw();
					$draw->setFillColor( $settings['title_color'] );
					$draw->setGravity( 1 );
					$draw->setFontSize( $settings['title_size'] );

					if ( isset( $options['defaults']['external_font'] ) && ! empty( $options['defaults']['external_font'] ) ) {
						$external_font = str_replace( home_url('/'), '', $options['defaults']['external_font'] );
						$draw->setFont( '../' . $external_font );
					} else {
						$draw->setFontFamily( $settings['title_font'] );
					}

					list( $lines, $line_height ) = $this->word_wrap_annotation( $output, $draw, $title, $result['titleImageWidth'] );

					for ( $i = 0; $i < count( $lines ); $i++ ) {
						$output->annotateImage( $draw, $result['pos_title_x'],  $result['pos_title_y'] + $i * $line_height, 0, $lines[ $i ] );
					}
				}

				// Save to new image
				$upload_dir['basedir'] = $upload_dir['basedir'] . '/wp_quiz-result-images';
				$upload_dir['baseurl'] = $upload_dir['baseurl'] . '/wp_quiz-result-images';
				$output_name = 'image-' . rand( 0, 100000 ) . '.png';
				$output->writeImage(  $upload_dir['basedir'] . '/' . $output_name  );

				// Clean up
				$profile->destroy();
				$output->destroy();

				$return['src']	= $upload_dir['baseurl'] . '/' . $output_name;
				$return['desc']	= $desc;
				$return['key']	= $result['key'];

			} catch ( Exception $ex ) {
				$return['error'] = $ex->getMessage();
			}

			return $return;
		}

		public function get_redirect_url( $url ) {

			$response = wp_remote_head( $url );
			$redirect_url = wp_remote_retrieve_header( $response, 'location' );

			return $redirect_url ? $redirect_url : $url;
		}

		public function word_wrap_annotation( $image, $draw, $text, $max_width ) {

			$words = preg_split( '%\s%', $text, -1, PREG_SPLIT_NO_EMPTY );
			$lines = array();
			$i = 0;
			$line_height = 0;

			while ( count( $words ) > 0 ) {
				$metrics = $image->queryFontMetrics( $draw, implode( ' ', array_slice( $words, 0, ++$i ) ) );
				$line_height = max( $metrics['textHeight'], $line_height );

				if ( $metrics['textWidth'] > $max_width || count( $words ) < $i ) {
					if ( 1 === $i ) {
						$i++;
					}

					$lines[] = implode( ' ', array_slice( $words, 0, --$i ) );
					$words = array_slice( $words, $i );
					$i = 0;
				}
			}

			return array( $lines, $line_height );
		}

		public function subscribe_user( $id, $name, $email ) {

			$settings 	= get_post_meta( $id, 'settings', true );
			$options 	= get_option( 'wp_quiz_pro_default_settings' );
			if ( '1' === $settings['force_action'] ) {
				if ( '1' === $options['mail_service'] ) {
					$this->subscribe_mailchimp( $options, $name, $email );
				} else if ( '2' === $options['mail_service'] ) {
					$this->subscribe_getresponse( $options, $name, $email );
				} else if ( '3' === $options['mail_service'] ) {
					$this->subscribe_aweber( $options, $name, $email );
				}
			}
		}

		private function subscribe_aweber( $options, $name, $email ) {

			// check for valid data
			if ( empty( $email ) ) {
				wp_send_json( array(
					'success' => false,
					'error' => esc_html__( 'No email address found.', 'wp-quiz-pro' ),
				) );
			}

			if ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) {
				wp_send_json( array(
					'success' => false,
					'error' => esc_html__( 'Not a valid email address.', 'wp-quiz-pro' ),
				) );
			}

			// Call service subscription method
			try {
				$service = new WP_Quiz_Pro_Subscription_Aweber();
				$list_id		= $options['aweber']['listid'];
				$status = $service->subscribe( $name, $email, $list_id );

				wp_send_json(array(
					'success' => true,
					'status' => $status['status'],
				));
			} catch ( Exception $e ) {
				wp_send_json(array(
					'success' => false,
					'error' => $e->getMessage(),
				));
			}
		}

		private function subscribe_mailchimp( $options, $name, $email ) {

			$mc_api_key		= $options['mailchimp']['api_key'];
			$mc_list_id		= $options['mailchimp']['list_id'];
			$double_optin	= apply_filters( 'wp_quiz_mailchimp_double_notification', false );

			$vendor_path = $this->get_vendor_path();

			if ( $email && null !== $mc_api_key && null !== $mc_list_id ) {

				try {
					if ( ! class_exists( 'Mailchimp' ) ) {
						require_once( $vendor_path . '/Mailchimp.php' );
					}

					$list = new Mailchimp_Lists( new Mailchimp( $mc_api_key ) );
					$merge_vars = null;
					if ( $name ) {
						$fname = $name;
						$lname = '';
						if ( $space_pos = strpos( $name, ' ' ) ) {
							$fname = substr( $name, 0, $space_pos );
							$lname = substr( $name, $space_pos );
						}
						$merge_vars = array( 'FNAME' => $fname, 'LNAME' => $lname );
					}
					$list->subscribe( $mc_list_id, array( 'email' => $email ), $merge_vars, 'html', (bool) $double_optin, true );

				} catch ( Exception $ex ) {}
			}
		}

		private function subscribe_getresponse( $options, $name, $email ) {

			$gr_api_key = $options['getresponse']['api_key'];
			$gr_list_id = $options['getresponse']['campaign_name'];

			$vendor_path = $this->get_vendor_path();

			if ( $email && null !== $gr_api_key && null !== $gr_list_id ) {
				try {
					if ( ! class_exists( 'GetResponse' ) ) {
						require_once( $vendor_path . '/getresponse.php' );
					}

					$api = new GetResponse( $gr_api_key );
					$campaign_ame		= $gr_list_id;
					$subscriber_name		= $name;
					$subscriber_email	= $email;

					$result 		= $api->getCampaigns( 'EQUALS', $campaign_ame );
					$campaigns		= array_keys( (array) $result );
					$campaign_id	= array_pop( $campaigns );

					$api->addContact( $campaign_id, $subscriber_name, $subscriber_email );
				} catch ( Exception $ex ) {}
			}
		}

		public function get_vendor_path() {

			return plugin_dir_path( __FILE__ ) . 'vendor';
		}

		public function check_image_file() {

			$output = array( 'status' => 1 );
			$check = false;
			if ( @getimagesize( $_POST['url'] ) ) {
				$check = true;
			}

			$output['check'] = $check;
			wp_send_json( $output );
		}

		public function check_video_file() {

			$output = array( 'status' => 1 );
			$check = false;
			$id = $_POST['video_id'];
			$url = "http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v=$id&format=json";
			$headers = get_headers( $url );
			if ( '404' !== substr( $headers[0], 9, 3 ) ) {
				$check = true;
			}

			$output['check'] = $check;
			wp_send_json( $output );
		}

		public static function activate_plugin() {

			// Don't activate on anything less than PHP 5.4.0 or WordPress 3.4
			if ( version_compare( PHP_VERSION, '5.4.0', '<' ) || version_compare( get_bloginfo( 'version' ), '3.4', '<' ) || ! function_exists( 'spl_autoload_register' ) ) {
				require_once ABSPATH . 'wp-admin/includes/plugin.php';
				deactivate_plugins( basename( __FILE__ ) );
				wp_die( __( 'Testes Pop requires PHP version 5.4.0 with spl extension or greater and WordPress 3.4 or greater.', 'wp-quiz-pro' ) );
			}

			//Dont't activate if wp quiz is active
			if ( defined( 'WP_QUIZ_VERSION' ) ) {
				deactivate_plugins( basename( __FILE__ ) );
				wp_die( __( 'Please deactivate WP Quiz plugin first to use the Premium features!', 'wp-quiz-pro' ) );
			}

			include( 'inc/activate-plugin.php' );

		}

		public function get_ip() {

			//Just get the headers if we can or else use the SERVER global
			if ( function_exists( 'apache_request_headers' ) ) {
				$headers = apache_request_headers();
			} else {
				$headers = $_SERVER;
			}

			//Get the forwarded IP if it exists
			if ( array_key_exists( 'X-Forwarded-For', $headers ) && filter_var( $headers['X-Forwarded-For'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) ) {
				$the_ip = $headers['X-Forwarded-For'];
			} else if ( array_key_exists( 'HTTP_X_FORWARDED_FOR', $headers ) && filter_var( $headers['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) ) {
				$the_ip = $headers['HTTP_X_FORWARDED_FOR'];
			} else {
				$the_ip = filter_var( $_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 );
			}
			return $the_ip;

		}

		public function dismiss_imagick_notice() {
			add_option( 'wp_dismiss_imagick_notice', 'true' );
		}

		public function dismiss_gdlibrary_notice() {
			add_option( 'wp_dismiss_gdlibrary_notice', 'true' );
		}

		public function wp_quiz_pro_get_debug_log() {
			$page = new WP_Quiz_Pro_Page_Support();
			$page->get_debug_log();
		}

		public function fb_share_fix() {

			$data = array_map( 'urldecode', $_GET );
			$result = get_post_meta( $data['id'], 'results', true );
			$result = isset( $result[ $data['rid'] ] ) ? $result[ $data['rid'] ] : array();

			// Picture
			if ( 'r' === $data['pic'] ) {
				$data['source'] = $result['image'];
			} elseif ( 'f' === $data['pic'] ) {
				$data['source'] = wp_get_attachment_url( get_post_thumbnail_id( $data['id'] ) );
			} elseif ( ( substr( $data['pic'], 0, 6 ) === 'image-' ) ) {
			    $upload_dir = wp_upload_dir();
				$upload_dir['baseurl'] = $upload_dir['baseurl'] . '/wp_quiz-result-images';
				$data['source'] = $upload_dir['baseurl'] . '/' . $data['pic'] . '.png';
			} else {
				$data['source'] = false;
			}

			// Description
			if ( 'r' === $data['desc'] ) {
				$data['description'] = $result['desc'];
			} elseif ( 'e' === $data['desc'] ) {
				$data['description'] = get_post_field( 'post_excerpt', $data['id'] );
			} else {
				$data['description'] = false;
			}

			if ( $data['description'] ) {

			    $first = array( '%%nomeusuario%%', '%%nomeamigo%%' );
			    $last = array( '%%sobrenome%%', '%%sobrenomeamigo%%' );

			    $data['description'] = str_replace( $first, $data['nf'], $data['description'] );
			    $data['description'] = str_replace( $last, $data['nl'], $data['description'] );
			}

			$settings = get_option( 'wp_quiz_pro_default_settings' );
			$url = ( is_ssl() ? 'https' : 'http' ) . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

			global $post;
			$pid  = $post ? $post->ID : $data['id'];
			$original_url = get_permalink( $pid );
			?>
			<html>
				<head>
					<title><?php wp_title( '' ) ?></title>
					<meta property="fb:app_id" content="<?php echo $settings['defaults']['fb_app_id'] ?>">
					<meta property="og:type" content="website">
					<meta name="twitter:card" content="summary_large_image">
					<meta property="og:url" content="<?php echo esc_url( $url ); ?>">
					<?php if ( ! empty( $data['text'] ) ) : ?>
					<meta property="og:title" content="<?php echo get_the_title( $pid ) ?> - <?php echo esc_attr( $data['text'] ); ?>">
					<meta property="twitter:title" content="<?php echo get_the_title( $pid ) ?> - <?php echo esc_attr( $data['text'] ); ?>">
					<?php endif; ?>
					<?php if ( ! empty( $data['source'] ) ) : ?>
					<meta property="og:image" content="<?php echo esc_url( $data['source'] ); ?>">
					<meta property="twitter:image" content="<?php echo esc_url( $data['source'] ); ?>">
						<?php list( $img_width, $img_height ) = getimagesize( $data['source'] ); ?>
						<?php if ( isset( $img_width ) && $img_width ) : ?>
						<meta property="og:image:width" content="<?php echo $img_width ?>">
						<?php endif; ?>
						<?php if ( isset( $img_height ) && $img_height ) : ?>
						<meta property="og:image:height" content="<?php echo $img_height ?>">
						<?php endif; ?>
					<?php endif; ?>
					<?php if ( ! empty( $data['description'] ) ) : ?>
					<meta property="og:description" content="<?php echo esc_attr( $data['description'] ); ?>">
					<meta property="twitter:description" content="<?php echo esc_attr( $data['description'] ); ?>">
					<?php endif; ?>
					<meta http-equiv="refresh" content="0;url=<?php echo esc_url( $original_url ); ?>">
				</head>
			<body>
				Redirecting please wait....
			</body>
			</html>
			<?php
			exit;
		}
/*
////////////////////////////////////// ALTEREI AQUI ////////////////////////////////////
*/
		public $url_facebook = null;
		public static function get_url_facebook() {
			return $url_facebook;
		}
		public function set_url_facebook($url) {
			$this->url_facebook = $url;
		}
/*
////////////////////////////////////// ALTEREI AQUI ////////////////////////////////////
*/

		/**
		 * [inline_script description]
		 * @return [type] [description]
		 */
		public function inline_script() {
			$settings = get_option( 'wp_quiz_pro_default_settings' );
/*
////////////////////////////////////// ALTEREI AQUI ////////////////////////////////////
*/
			$this->set_url_facebook($settings['defaults']['fb_app_id2']);
/*
////////////////////////////////////// ALTEREI AQUI ////////////////////////////////////
*/
			?>
			<script>
			var quizSiteUrl = '<?php echo home_url( '/' ) ?>';
			<?php if ( ! empty( $settings['analytics']['tracking_id'] ) ) { ?>
				(function(i,s,o,g,r,a,m) {i['GoogleAnalyticsObject']=r;i[r]=i[r]||function() {
				(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
				m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
				})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

				ga('create', '<?php echo $settings['analytics']['tracking_id'] ?>', 'auto');
				ga('send', 'pageview');
			<?php } ?>
			<?php if ( ! empty( $settings['defaults']['fb_app_id'] ) ) { ?>
				window.fbAsyncInit = function() {
					FB.init({
						appId    : '<?php echo $settings['defaults']['fb_app_id'] ?>',
						xfbml    : true,
						version  : 'v2.9'
					});

					FB.getLoginStatus(function( response ) {
						getLogin( response );
					});
				};
				
				(function(d, s, id) {
					var js, fjs = d.getElementsByTagName(s)[0];
					if (d.getElementById(id)) {return;}
					js = d.createElement(s); js.id = id;
					js.src = "//connect.facebook.net/pt_BR/sdk.js";
					fjs.parentNode.insertBefore(js, fjs);
				}(document, 'script', 'facebook-jssdk'));

			<?php } ?>
			</script>

			<!-- Codigo que exibe URL no topo da página -->
			<?php echo $settings['defaults']['fb_app_id2'] ?>
			<!-- fim Codigo que exibe URL no topo da página -->

			<?php
			if ( is_singular( array( 'wp_quiz' ) ) && isset( $settings['defaults']['share_meta'] ) && 1 === $settings['defaults']['share_meta'] ) {
				global $post, $wpseo_og;
				$twitter_desc = $og_desc = str_replace( array( "\r", "\n" ), '', strip_tags( $post->post_excerpt ) );
				if ( defined( 'WPSEO_VERSION' ) ) {
					remove_action( 'wpseo_head', array( $wpseo_og, 'opengraph' ), 30 );
					remove_action( 'wpseo_head', array( 'WPSEO_Twitter', 'get_instance' ), 40 );
					//use description from yoast
					$twitter_desc 	= get_post_meta( $post->ID, '_yoast_wpseo_twitter-description', true );
					$og_desc		= get_post_meta( $post->ID, '_yoast_wpseo_opengraph-description', true );
				}
				?>
				<meta name="twitter:title" content="<?php echo get_the_title(); ?>">
				<meta name="twitter:description" content="<?php echo $twitter_desc; ?>">
				<meta name="twitter:domain" content="<?php echo esc_url( site_url() ); ?>">
				<meta property="og:url" content="<?php the_permalink(); ?>" />
				<meta property="og:title" content="<?php echo get_the_title(); ?>" />
				<meta property="og:description" content="<?php echo $og_desc; ?>" />
				<?php
				if ( has_post_thumbnail() ) {
					$thumb_id = get_post_thumbnail_id();
					$thumb_url_array = wp_get_attachment_image_src( $thumb_id, 'full', true );
					$thumb_url = $thumb_url_array[0];
					?>
					<meta name="twitter:card" content="summary_large_image">
					<meta name="twitter:image:src" content="<?php echo $thumb_url; ?>">
					<meta property="og:image" content="<?php echo $thumb_url; ?>" />
					<meta itemprop="image" content="<?php echo $thumb_url; ?>">
				<?php
				}
			}
		}

		public function embeded_output() {

			if ( ! isset( $_GET['wp_quiz_id'] ) ) {
				return;
			}

			$qid		= absint( $_GET['wp_quiz_id'] );
			$quiz_html	= $this->register_shortcode( array( 'id' => $qid ) );
			$settings	= get_post_meta( $qid, 'settings', true );
			if ( empty( $quiz_html ) ) {
				return;
			}
			?>
				<link rel='stylesheet' href='<?php echo WP_QUIZ_PRO_ASSETS_URL . 'css/main.css'; ?>' type='text/css' media='all' />
				<link rel='stylesheet' href='<?php echo WP_QUIZ_PRO_ASSETS_URL . 'css/transition.min.css'; ?>' type='text/css' media='all' />
				<link rel='stylesheet' href='<?php echo WP_QUIZ_PRO_ASSETS_URL . 'css/embed.min.css'; ?>' type='text/css' media='all' />
				<style>
					.wq_embedToggleQuizCtr{ display: none; }
				</style>
			<?php
			if ( 'traditional' === $settings['skin'] ) {
				?>
					<link rel='stylesheet' href='<?php echo WP_QUIZ_PRO_ASSETS_URL . 'css/traditional-skin.css'; ?>' type='text/css' media='all' />
				<?php
			} else if ( 'flat' === $settings['skin'] ) {
				?>
					<link rel='stylesheet' href='<?php echo WP_QUIZ_PRO_ASSETS_URL . 'css/flat-skin.css'; ?>' type='text/css' media='all' />
				<?php
			}
			$this->inline_script();
			?>
				<script>
					var wq_l10n = {"correct": "Correct !", "wrong": "Wrong !","captionTrivia":"You got %%score%% out of %%total%%","captionTriviaFB":"I got %%score%% out of %%total%%, and you?","youVoted":"You voted","nonce": "<?php echo wp_create_nonce( 'ajax-quiz-content' ) ?>"};
				</script>
			<?php

			echo '<div class="wq_embed">' . $quiz_html . '</div>';
			?>
				<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
				<script src="<?php echo WP_QUIZ_PRO_ASSETS_URL . 'js/embed.min.js'; ?>"></script>
				<script src="<?php echo WP_QUIZ_PRO_ASSETS_URL . 'js/transition.min.js'; ?>"></script>
				<script src="<?php echo WP_QUIZ_PRO_ASSETS_URL . 'js/jquery.flip.min.js'; ?>"></script>
				<script src="<?php echo WP_QUIZ_PRO_ASSETS_URL . 'js/hammer.min.js'; ?>"></script>
				<script src="<?php echo WP_QUIZ_PRO_ASSETS_URL . 'js/dynamics.min.js'; ?>"></script>
				<script src="<?php echo WP_QUIZ_PRO_ASSETS_URL . 'js/jquery.jTinder.min.js'; ?>"></script>
				<script src="<?php echo WP_QUIZ_PRO_ASSETS_URL . 'js/main.min.js'; ?>"></script>
			<?php
			die();
		}

		/**
		 * [connect_aweber description]
		 * @return [type] [description]
		 */
		public function connect_aweber() {

			// check for data
			$aweber_code = isset( $_REQUEST['aweber_code'] ) ? $_REQUEST['aweber_code'] : array();
			if ( empty( $aweber_code ) ) {
				wp_send_json( array(
					'success' => false,
					'error' => esc_html__( 'No aweber authorization code found.', 'wp-quiz-pro' ),
				) );
			}

			try {
				$service = new WP_Quiz_Pro_Subscription_Aweber();
				$data = $service->connect( $aweber_code );

				wp_send_json(array(
					'success' => true,
					'data' => $data,
				));
			} catch ( Exception $e ) {
				wp_send_json(array(
					'success' => false,
					'error' => $e->getMessage(),
				));
			}
		}
	}

	/**
	 * Main instance of WP_Quiz_Pro_Plugin.
	 *
	 * Returns the main instance of WP_Quiz_Pro_Plugin to prevent the need to use globals.
	 *
	 * @return WP_Quiz_Pro_Plugin
	 */

	function wp_quiz_pro() {
		return WP_Quiz_Pro_Plugin::get_instance();
	}
/*
////////////////////////////////////// ALTEREI AQUI ////////////////////////////////////
*/
	function prepare_url_facebook() {
		return WP_Quiz_Pro_Plugin::get_url_facebook();
	}
/*
////////////////////////////////////// ALTEREI AQUI ////////////////////////////////////
*/
endif;

add_action( 'plugins_loaded', 'wp_quiz_pro', 10 );
register_activation_hook( __FILE__, array( 'WP_Quiz_Pro_Plugin', 'activate_plugin' ) );

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu mano, não sei bem como funciona se é trabalhoso ou não, mas ao invés de mexermos em todos esses arquivos, criar só uma função para inserir um custom field na página de configuração do plugin, e exibir esse field na single.php, seria viável?

 

Eu entendo bem de html e css, php ainda estou estudando.

Olha esse print, criei um 'NOME DO CAMPO AQUI", e o que inserir ali no campo, a gente exibe na single.php

c3c794794c.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tava a do facebok, eu mudei coloquei qualquer coisa.

 

O tiro final agora é colocarmos essa URL do facebook dentro do PHP, porque o arquivo que faz o teste rodar recebe o botão "entrar com facebook" etc com o html dentro do php. Só que para inserirmos nossa URL dentro do iframe precisa usar pho, ne? e agora?

 

olha o código, na div "like" recebe o botão, e temos que trocar a URL facebook.com/testesdivertidos pela URL da nossa função.

Olha o código, por favor. Nome do arquivo: class-fb-quiz.php

<?php
/**
 * Override parent 'WP_Quiz_Pro' class with facebook quiz specific markup,
 */
class WP_Quiz_Pro_Fb_Quiz extends WP_Quiz_Pro {

	/**
	 * Constructor
	 */
	public function __construct( $id  ) {

		parent::__construct( $id );
		add_filter( 'wp_quiz_data_attrs', array( $this, 'add_fb_data_attrs' ) );
	}

	public function get_html_questions() {

		$questions_html = '';

		if ( ! empty( $this->questions ) ) {
			foreach ( $this->questions as $key => $question ) {

				$desc = ! empty( $question['desc'] ) ? '<p class="desc">' . $question['desc'] . '</p>' : '';
				$questions_html .= '
					<div class="wq_singleQuestionWrapper wq_IsFb" style="">
						<div class="wq_loader-container" style="display:none;">
							<div class="wq_loader_text">
								<img src="' . WP_QUIZ_PRO_ASSETS_URL . 'image/image_spinner.gif" />
								<h3 id="wq_text_loader">' . esc_html__( 'Analizando perfil ...', 'wp-quiz-pro' ) . '</h3>
							</div>
						</div>
						
						<div class="wq_questionMediaCtr" >
							<div class="wq_questionImage"><img src="' . $question['image'] . '" /><span>' . $question['imageCredit'] . '</span></div>
						</div>

						<div class="wq_questionTextDescCtr" style="color:' . $this->settings['font_color'] . '">
							<h4 style="font-size:28px!important; line-height:26px; padding-top: 25px; padding-bottom:13px;">' . $question['title'] . '</h4>
							<h4 style="font-size:18px!important; line-height:19px; padding-bottom:15px;">Por favor, entre com o Facebook para ver o seu resultado</h4>
						</div>

						<div class="like">
							<iframe class="facebook-like-button" style="cursor: default;" src="https://www.facebook.com/plugins/like.php?locale=pt_BR&href=https://www.facebook.com/plugins/like.php?locale=pt_BR&href=https://www.facebook.com/testesdivertidos&layout=button_count&action=like&size=small&show_faces=false&share=false&width=50&height=21" width="97" height="20" style="border:none;overflow:hidden;" scrolling="no" frameborder="0" allowTransparency="true"></iframe>
						</div>

						<div class="wq_questionLogin">
							<button class="wq_loginFB">
								<i class="fa fa-facebook-official" aria-hidden="true"></i>&nbsp;Entre com Facebook
							</button>
						</div>
					</div>';
			}
		}
		return $questions_html;
	}


	public function get_html_results() {

		$results_html = '';
		$share_html = $this->get_html_share();
		if ( ! empty( $this->results ) ) {
			$results_html .= '
				<div style="display:none;" class="wq_singleResultWrapper wq_IsFb" data-id="">
					<img class="wq_resultImg" src=""/>

					<center><div class="wq_resultDesc" style="line-height:20px; padding-top:10px;"></div></center>
					' . $share_html . '
				</div>
			';
		}

		return $results_html;
	}

	
	public function add_fb_data_attrs( $data ) {

		$data .= 'data-quiz-profile="' . $this->settings['profile'] . '" ';
		return $data;
	}
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teria que ser algo assim, ne?

 

<iframe class="facebook-like-button" style="cursor: default;" src="https://www.facebook.com/plugins/like.php?locale=pt_BR&href=https://www.facebook.com/plugins/like.php?locale=pt_BR&href=
<?php echo "<pre>"; print_r(prepare_url_facebook()); echo "</pre>";?>
&layout=button_count&action=like&size=small&show_faces=false&share=false&width=50&height=21" width="97" height="20" style="border:none;overflow:hidden;" scrolling="no" frameborder="0" allowTransparency="true"></iframe>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Removi a formatação que você sugeriu, dai ficou assim:

<?php print_r(prepare_url_facebook()); ?>

Para inserir esse PHP dentro do iframe que está dentro do PHP, eu uso como?

Tentei copiar o que o outro parceiro falou, mas não funcionou, testei assim:

"'.print_r(prepare_url_facebook()).'"

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
20 minutos atrás, wellingtonmelo disse:

Teria que ser algo assim, ne?

 

<iframe class="facebook-like-button" style="cursor: default;" src="https://www.facebook.com/plugins/like.php?locale=pt_BR&href=https://www.facebook.com/plugins/like.php?locale=pt_BR&href=
<?php echo "<pre>"; print_r(prepare_url_facebook()); echo "</pre>";?>
&layout=button_count&action=like&size=small&show_faces=false&share=false&width=50&height=21" width="97" height="20" style="border:none;overflow:hidden;" scrolling="no" frameborder="0" allowTransparency="true"></iframe>

 

 

9 minutos atrás, wellingtonmelo disse:

Removi a formatação que você sugeriu, dai ficou assim:


<?php print_r(prepare_url_facebook()); ?>

Para inserir esse PHP dentro do iframe que está dentro do PHP, eu uso como?

Tentei copiar o que o outro parceiro falou, mas não funcionou, testei assim:


"'.print_r(prepare_url_facebook()).'"

 

Não, se fizer isso vai quebrar o código.

Agora vai ser necessário alterar o código em class-fb-quiz.php, pq pelo o que vi é lá que renderiza o iframe, vamo tentar jogar o get_url_facebook() lá.

Vai no arquivo class-fb-quiz.php e troca o código inteiro por esse e faz o teste:

https://pastebin.com/3DAfedBa

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

O display errors ainda ta ativado ou você chegou a remover? Se não tiver, ativa ele pra debugar o erro.

ini_set('display_errors', true);
error_reporting(E_ALL);

 

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu irmão, você é demais! Quem sabe sabe!!!! Ficou TOP demais!!!!

Da uma olhada lá, agora consegui colocar tudo pra aparecer automaticamente, basta o usuário informar a URL da página dele. Que massa ficou!

 

Não tenho nem como te agradecer, quase 2 da manhã e tu me ajudando aqui, gratidão demais irmão!

  • Obrigado! 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por ILR master
      Fala galera, tudo bem?
       
      Tenho o seguinte codigo:
       
       class Data {
      public static function ExibirTempoDecorrido($date)
      {
          if(empty($date))
          {
              return "Informe a data";
          }
          $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
          $duracao = array("60","60","24","7","4.35","12","10");
          $agora = time();
          $unix_data = strtotime($date);
          // check validity of date
          if(empty($unix_data))
          {  
              return "Bad date";
          }
          // is it future date or past date
          if($agora > $unix_data) 
          {  
              $diferenca     = $agora - $unix_data;
              $tempo         = "atrás";
          } 
          else 
          {
              $diferenca     = $unix_data - $agora;
              $tempo         = "agora";
          }
          for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
          {
              $diferenca /= $duracao[$j];
          }
          $diferenca = round($diferenca);
          if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
          return "$diferenca $periodos[$j] {$tempo}";
      }
      }
       
      Funciona redondinho se o valor retornado for de algumas horas, mas...
      Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
      if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
       
      Quero que modre:
       
      2 meses atrás
      e não
      2 mess atrás.
       
      Espero que tenham entendido.
       
      Valeu
    • Por Carlos Web Soluções Web
      Olá...
      Estou tentando fazer o seguinte !!
      Listando dados em tabela !!
      Gostaria que....se na listagem houver 4 linhas...indepedente de seu número de ID, faça a listagem em ID ser em ordem 1 2 3 4 !!
      Exemplo...se tiver uma listagem de dados que está em ID 1 3 3...faça ficar 1 2 3 !!

       
      echo "<table class='tabela_dados' border='1'> <tr> <td>ID</td> <td>Nome Empresa</td> <td>Responsável</td> <td>Telefone 1</td> <td>Telefone 2</td> <td>E-mail 1</td> <td>E-mail 2</td> <td>Endereço</td> <td>CEP</td> <td>Bairro</td> <td>AÇÃO 1</td> <td>AÇÃO 2</td> </tr> "; $sql = "SELECT ID FROM usuarios_dados WHERE Usuario='$usuario'"; $result = $conn->query($sql); $num_rows = $result->num_rows; $Novo_ID = 1; for ($i = 0; $i < $num_rows; $i++) { $registro = $result -> fetch_row(); $sql2 = "UPDATE usuarios_dados SET ID='$Novo_ID' WHERE ID='$Novo_ID'"; $result2 = $conn->query($sql2); $Novo_ID++; } $sql = "SELECT * FROM usuarios_dados"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "<tr> <td>$row[ID]</td> <td>$row[Nome_Empresa]</td> <td>$row[Responsavel]</td> <td>$row[Telefone_1]</td> <td>$row[Telefone_2]</td> <td>$row[Email_1]</td> <td>$row[Email_2]</td> <td>$row[Endereço]</td> <td>$row[CEP]</td> <td>$row[Bairro]</td> <td> <form method='post' action='Editar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='EDITAR'> </form> </td> <td> <form method='post' action='Deletar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='DELETAR'> </form> </td> </tr> "; } } else { echo "0 results"; } $conn->close();  
    • Por ILR master
      Boa tarde pessoal, tudo bem ?
       
      Eu uso o tinymce para cadastro de textos no meu siite, porém, quero fazer um sistema para que os colunistas possam fazer o próprio post.
      O problema do tinymce, é que ele mantém a formatação do texto copiado, como tamanho de fonts, negritos, etc... Quero que o usuário cole o texto e a própria textarea limpe a formatação para que ele formate como quiser.
       
      A pergunta é:
       
      O tinymce tem uma opção para desabilitar a formatação quando um texto é colocado?
      Tem alguma função via java ou php para retirar a formatação assim que o texto é colado?
      Ou é melhor usar um outro editor?
       
      Agradeço deste já.
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por ILR master
      Fala pessoal.
       
      Seguinte:
       
      Quero selecionar duas tabelas e mostrar com resultados intercalados. Abaixo segue um código explicando para vcs terem uma ideia.
       
      $consulta = "SELECT A.*, B.* FROM tabela1 A, tabela2 B'";
      $resultado = mysqli_query($conexao, $consulta) or die ("erro");
      while($busca = mysqli_fetch_array($resultado)){
       
      print $busca['cod_evento']; --> traz o código da tabela1 
      print $busca['titulo_evento']; -->  traz o titulo da tabela1
      print $busca['cod_noticia']; --> traz o código da tabela2
      print $busca['titulo_noticia']; --> traz o tituloda tabela2
       
      }
       
      Espero que entendam. Grato
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.