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.
- O tópico ‘Plugin para proteger parcialmente um post’ está fechado para novas respostas.