function hocwp_setup_theme_wp_hook()
{
    if (is_404()) {
        $redirect_404 = (bool) hocwp_option_get_value('reading', 'redirect_404');
        $post_type = hocwp_get_method_value('post_type', 'get');
        $p = hocwp_get_method_value('p', 'get');
        if ($redirect_404 || !empty($post_type) && hocwp_id_number_valid($p)) {
            hocwp_redirect_home();
        }
    } else {
        if (is_singular()) {
            $post_status = get_post_status();
            if ('future' == $post_status && !current_user_can('manage_options')) {
                hocwp_redirect_home();
            }
            $trending = hocwp_theme_get_reading_options('trending');
            if ((bool) $trending) {
                do_action('hocwp_add_trending_post', get_the_ID(), 'view');
            }
        }
        if (is_user_logged_in()) {
            if (is_page_template('page-templates/register.php') || is_page_template('page-templates/login.php')) {
                wp_redirect(get_edit_profile_url());
                exit;
            }
        } else {
            if (is_page_template('page-templates/register.php')) {
                if (hocwp_users_can_register()) {
                    hocwp_execute_register();
                } else {
                    $page = hocwp_get_page_by_template('page-templates/login.php');
                    if (is_a($page, 'WP_Post')) {
                        wp_redirect(get_permalink($page));
                        exit;
                    }
                    hocwp_redirect_home();
                }
            } else {
                if (hocwp_is_login_page()) {
                    $page = hocwp_get_pages_by_template('page-templates/login.php', array('output' => 'object'));
                    if (is_a($page, 'WP_Post')) {
                        wp_redirect(get_permalink($page));
                        exit;
                    }
                } elseif (is_page_template('page-templates/favorite-posts.php')) {
                    wp_redirect(wp_login_url());
                    exit;
                }
            }
        }
    }
    $enlarge_thumbnail = (bool) hocwp_theme_get_reading_options('enlarge_thumbnail');
    if ($enlarge_thumbnail) {
        add_filter('hocwp_enlarge_post_thumbnail_on_mobile', '__return_true');
    }
    $action = hocwp_get_method_value('action', 'get');
    switch ($action) {
        case 'verify_subscription':
            $key = hocwp_get_method_value('key', 'get');
            if (!empty($key)) {
                $args = array('post_type' => 'hocwp_subscriber', 'posts_per_page' => 1);
                $query = hocwp_get_post_by_meta('subscriber_active_key', $key, $args);
                if ($query->have_posts()) {
                    $obj = array_shift($query->posts);
                    update_post_meta($obj->ID, 'subscriber_verified', 1);
                    $name = hocwp_get_post_meta('subscriber_name', $obj->ID);
                    $email = hocwp_get_post_meta('subscriber_email', $obj->ID);
                    $args = array('email' => $email, 'name' => $name);
                    hocwp_add_to_newsletter_list($args);
                } else {
                    hocwp_redirect_home();
                }
            }
            break;
    }
}
Exemplo n.º 2
0
function hocwp_register_form($args = array())
{
    if (is_user_logged_in()) {
        return;
    }
    $defaults = hocwp_account_form_default_args();
    $args = wp_parse_args($args, $defaults);
    $data = hocwp_execute_register();
    $user_login = $data['user_login'];
    $user_email = $data['user_email'];
    $pwd = $data['pwd'];
    $pwd_again = $data['pwd_again'];
    $phone = $data['phone'];
    $error = $data['error'];
    $message = $data['message'];
    $inserted = $data['inserted'];
    $redirect_to = $data['redirect_to'];
    $logo = hocwp_get_value_by_key($args, 'logo', hocwp_get_login_logo_url());
    ?>
	<div class="hocwp-login-box module">
		<div class="module-header text-center">
			<?php 
    if (!empty($logo)) {
        $a = new HOCWP_HTML('a');
        $a->set_href(home_url('/'));
        $a->set_class('logo');
        $img = new HOCWP_HTML('img');
        $img->set_image_alt('');
        $img->set_image_src($logo);
        $a->set_text($img->build());
        $a->output();
    }
    $slogan = new HOCWP_HTML('p');
    $slogan->set_class('slogan');
    $slogan->set_text(sprintf($args['slogan'], hocwp_get_root_domain_name(home_url('/'))));
    $slogan->output();
    if (isset($_REQUEST['error']) || $error) {
        $message = hocwp_build_message($message, 'danger');
        echo $message;
    } elseif ($inserted || hocwp_id_number_valid($data['transient'])) {
        $message = hocwp_build_message($message, 'success');
        echo $message;
        hocwp_auto_reload_script();
    }
    ?>
		</div>
		<div class="module-body">
			<h4 class="form-title"><?php 
    _e('Registration', 'hocwp-theme');
    ?>
</h4>

			<form name="registerform register-form signup-form" id="registerform" action="" method="post"
			      novalidate="novalidate">
				<p>
					<label
						for="user_login"><?php 
    echo hocwp_get_value_by_key($args, 'label_username', __('Username', 'hocwp-theme'));
    ?>
						<br/>
						<input type="text" name="user_login" id="user_login" class="input"
						       value="<?php 
    echo esc_attr(wp_unslash($user_login));
    ?>
" size="20"/></label>
				</p>

				<p>
					<label for="user_email"><?php 
    echo $args['label_email'];
    ?>
<br/>
						<input type="email" name="user_email" id="user_email" class="input"
						       value="<?php 
    echo esc_attr(wp_unslash($user_email));
    ?>
" size="25"/></label>
				</p>

				<p>
					<label
						for="user_pass"><?php 
    echo hocwp_get_value_by_key($args, 'label_password', __('Password', 'hocwp-theme'));
    ?>
						<br/>
						<input type="password" name="pwd" id="user_pass" class="input" value="<?php 
    echo $pwd;
    ?>
"
						       size="20"/></label>
				</p>

				<p>
					<label for="user_pass_again"><?php 
    echo $args['label_confirm_password'];
    ?>
<br/>
						<input type="password" name="pwd_again" id="user_pass_again" class="input"
						       value="<?php 
    echo $pwd_again;
    ?>
" size="20"/></label>
				</p>

				<p>
					<label for="phone"><?php 
    echo $args['label_phone'];
    ?>
<br/>
						<input type="text" name="phone" id="phone" class="input" value="<?php 
    echo $phone;
    ?>
"
						       size="20"/></label>
				</p>
				<?php 
    do_action('register_form');
    ?>
				<input type="hidden" name="action" value="register">
				<input type="hidden" name="redirect_to" value="<?php 
    echo esc_attr($redirect_to);
    ?>
"/>

				<p class="submit"><input type="submit" name="wp-submit" id="wp-submit"
				                         class="button button-primary button-large"
				                         value="<?php 
    echo $args['text_register_link'];
    ?>
"/></p>
			</form>
		</div>
		<div class="module-footer">
			<div class="text-center">
				<p class="form-nav">
					<a href="<?php 
    echo esc_url(wp_login_url());
    ?>
"><?php 
    echo hocwp_get_value_by_key($args, 'label_log_in', __('Login', 'hocwp-theme'));
    ?>
</a>
					<span class="sep">|</span>
					<a href="<?php 
    echo esc_url(wp_lostpassword_url());
    ?>
"
					   title="<?php 
    echo $args['title_lostpassword_link'];
    ?>
"><?php 
    echo $args['text_lostpassword_link'];
    ?>
</a>
				</p>
			</div>
		</div>
	</div>
	<?php 
}