Suporte » Plugins » Plugin para proteger parcialmente um post

  • Pessoal estou a algum tempo procurando um plugin que proteja parcialmente um post, principalmente a galeria de imagens no post. achei este na internet funciona no post porém não exibe a galeria de fotos no mesmo.
    Segue código do plugin (OBS>: Ele foi modificado, pois estava incompleto).

    <?php
    /*
    Plugin Name: Partial Protect with Passwords
    Version: 1.0
    Plugin URI: http://www.newmedias.co.uk
    Description: Password protect poritions of posts/pages
    Author: Cambridge New Media Services
    Author URI: http://www.newmedias.co.uk
    
    */
    //Logic Functions
    function user_has_password($post_id=false){
    	//Identify the post assume in the loop
    	if (!$post_id) {
    			$post_id = get_the_id();
    		}
    
    		//If user has access via YM let them see it, also if user can edit the post since they can already see it
    		if(is_user_logged_in()) {
    			get_currentuserinfo();
    			global $current_user, $user_data;
    				if(is_ym_installed()) {
    					if(ym_user_has_access($post_id)){
    						return true;
    					}
    				if(current_user_can('edit_posts')){
    					return true;
    				}
    			}
    		}
    		//Deal with Form data
    			if($_POST['password']){
    				$password = get_post_meta($post_id,'pp_post_password',true);
    				if($_POST['password'] == $password){
    					return true;
    				}
    			else {
    				return false;
    			}
    
    		}
    		return false;
    
    }
    function post_password_is($post_id){
    
    	$password = get_post_meta($post_id,'pp_password_post',true);
    
    return $password;
    }
    
    function is_ym_installed(){
    	if(!get_option('ym_sys')){
    		$return = false;
    	}
    	else {
    		$return = true;
    	}
    	return $return;
    }
    
    //User Display Options
    function generate_password_form() {
    	$pass = get_option('pp_custom_password');
    	$return = '<form action="'.str_replace( '%7E', '~', $_SERVER['REQUEST_URI']).'" method="post" enctype="multipart/form-data"><label>'.$pass.'<input type="password" name="password" /></label>  <input type="submit" style="height: 20px;" value="OK" name="Submit" /></form>';
    	return $return;
    }
    
    //Admin Pages
    function post_password_admin_menu() {
    	  add_options_page('Post Password Options', 'Post Password Options', 8, __FILE__, 'settings_post_password_render');
    }
    
    function add_post_password_render(){
    global $post_ID;
    
    		$password = get_post_meta($post_ID,'pp_post_password',true);
    
    		echo $post_ID;
    
    	echo '<div>';
    	echo '<h3>Post Password</h3><p>Password to access protected content held in [password][/password] tags';
    	echo '<label>Posts Password:';
    	echo '<input type="text" name="pp_post_password" value="'. $password .'">';
    	echo '</label>';
    	echo '</div>';
    
    }
    
    function settings_post_password_render(){
    
    	if( $_POST['error_message'] || $_POST['custom_password']){
    		update_option( 'pp_error_message', $_POST['error_message'] );
    		update_option( 'pp_custom_password', $_POST['custom_password']);
    		echo '<div id="message" class=" feedback fade" style="clear: both; margin-top: 5px; padding: 7px;">';
    		echo '<strong>'.__('Settings have been saved','pp_pass').'</strong>';
    		echo '</div>';
    	}
    	$error_message_value = get_option('pp_error_message');
    	$custom_password = get_option('pp_custom_password');
    
    	echo '<div class="wrap">';
    	echo '<h2>'.__('Post Password Settings','pp_pass').'</h2>';
    	echo '<p>'.__('Partial Protect posts by wrapping content you wish to hide in [password][/password] tags and specify a password in post/page manage pages. Plugin is by <a href="http://www.newmedias.co.uk">Cambridge New Media Services</a>','pp_pass').'</p>';
    	echo '
    	<form action="'.str_replace( '%7E', '~', $_SERVER['REQUEST_URI']).'" method="post" enctype="multipart/form-data">
    
    	<table class="form-table"><tbody>';
    
    	echo '
    	<tr class="form-field">
    		<td>'.__('Error Message for failed Password', 'pp_pass').'</td>
    		<td>
    			<input style="width: 300px;" type="text" name="error_message" value="'.$error_message_value.'"/>
    		</td>
    	</tr>';
    
    	echo '
    	<tr class="form-field">
    		<td>'.__('Customise Password Text', 'pp_pass').'</td>
    		<td>
    			<input style="width: 300px;" type="text" name="custom_password" value="'.$custom_password.'"/>
    		</td>
    	</tr>';
    	echo '</tbody>
    		</table>
    		<br />
    		<input type="submit" class="button" name="submit" value="'.__('Edit','oldpost').'" />
    		</form>';
    	echo '</div>';
    }
    function save_add_post_password($post_id){
    	if (isset($_POST['pp_post_password'])) {
    		$password = $_POST['pp_post_password'];
    		if (count(get_post_meta($post_id, 'pp_post_password')) < 1) {
    			add_post_meta($post_id,'pp_post_password', $password);
    		}
    		else {
    			update_post_meta($post_id,'pp_post_password', $password);
    		}
    	}
    }
    
    //shortcode control
    function password_protected($atts, $content=''){
    	if(user_has_password()){
    		$return = $content;
    	}
    	else {
    		if($_POST['password']){
    			$msg = get_option('pp_error_message');
    			$content = '<div class="pp_error">'.$msg.'</div>';
    			$content .= generate_password_form();
    		}
    		else {
    		$content = generate_password_form();
    		}
    		$return =  $content;
    	}
    	return $return;
    
    }
    
    function activate_post_password(){
    	$pass = 'Password';
    	$msg = 'Please Provide the Correct Password!';
    	if(!get_option('pp_error_message')){
    		update_option( 'pp_error_message', $msg );
    	}
    	if(!get_option('pp_custom_password')){
    		update_option( 'pp_custom_password', $pass);
    	}
    }
    
    register_activation_hook( __FILE__, 'activate_post_password' );
    add_action('save_post', 'save_add_post_password');
    add_action('submitpost_box', 'add_post_password_render');
    add_action('submitpage_box', 'add_post_password_render');
    add_action('admin_menu', 'post_password_admin_menu');
    add_shortcode('password', 'password_protected');
    ?>

    Porém ao utiliza-lo ele mostra o código da galeria no post e não as imagens.
    Será que poderiam dar uma ajuda ou indicar outro plugin com função semelhante.
    Detalhes adicionais: O plugin instalado, gera uma linha no próprio post no qual eu insiro a palavra que será a senha. No post basta adicionar o que quero que fique protegido assim: [password] aqui fica o protegido [/password] sem a necessidade de selecionar o post como protegido ou privado. Entendo muito pouco de php mas acredito que após o comando do password ele esteja somente lendo o código e não interpretando o mesmo.
    É claro que vocês devem saber, mas por via das dúvida não custa comentar. Para o plugin funcionar, basta colocar este arquivo manualmente na pasta plugins do WP e depois no Painel ativar o mesmo.

Visualizando 1 resposta (de um total de 1)
Visualizando 1 resposta (de um total de 1)
  • O tópico ‘Plugin para proteger parcialmente um post’ está fechado para novas respostas.