Exemple #1
0
    function cp_profile_fields($user)
    {
        global $appthemes_extended_profile_fields;
        ?>
		<h3><?php 
        _e('Extended Profile', APP_TD);
        ?>
</h3>
		<table class="form-table">

		<?php 
        foreach ($appthemes_extended_profile_fields as $field_id => $field_values) {
            if (isset($field_values['protected']) && $field_values['protected'] == 'yes' && !is_admin()) {
                $protected = 'disabled="disabled"';
            } else {
                $protected = '';
            }
            //TODO - use this value for display purposes while protecting stored value
            //prepare, modify, or filter the field value based on the field ID
            switch ($field_id) {
                case 'active_membership_pack':
                    $user_active_pack = get_the_author_meta($field_id, $user->ID);
                    $package = cp_get_membership_package($user_active_pack);
                    $the_display_value = $package ? $package->pack_name : false;
                    break;
                default:
                    $the_display_value = false;
                    break;
            }
            $the_value = get_the_author_meta($field_id, $user->ID);
            //begin writing the row and heading
            ?>
					<tr id="<?php 
            echo esc_attr($field_id);
            ?>
_row">
						<th><label for="<?php 
            echo esc_attr($field_id);
            ?>
"><?php 
            echo esc_html($field_values['title']);
            ?>
</label></th>
							<td>
								<?php 
            //print the appropriate profile field based on the type of field
            switch ($field_values['type']) {
                case 'date':
                    $display_date = !empty($the_value) ? appthemes_display_date($the_value) : '';
                    if (!$protected) {
                        ?>
												<input type="text" name="<?php 
                        echo esc_attr($field_id);
                        ?>
" id="<?php 
                        echo esc_attr($field_id);
                        ?>
" value="<?php 
                        echo esc_attr($the_value);
                        ?>
" class="regular-text" size="35" /><br />
												<span class="description"><?php 
                        echo esc_attr($field_values['admin_description']);
                        ?>
<br /></span>
									<?php 
                    }
                    ?>
											<input type="text" name="<?php 
                    echo esc_attr($field_id);
                    ?>
_display" id="<?php 
                    echo esc_attr($field_id);
                    ?>
" value="<?php 
                    echo esc_attr($display_date);
                    ?>
" class="regular-text" size="35" disabled="disabled" /><br />
											<span class="description"><?php 
                    echo $field_values['description'];
                    ?>
</span>
									<?php 
                    break;
                case 'active_membership_pack':
                    if (!$protected) {
                        ?>
												<input type="text" name="<?php 
                        echo esc_attr($field_id);
                        ?>
" id="<?php 
                        echo esc_attr($field_id);
                        ?>
" value="<?php 
                        echo esc_attr($the_value);
                        ?>
" class="regular-text" size="35" /><br />
												<span class="description"><?php 
                        echo esc_attr($field_values['admin_description']);
                        ?>
<br /></span>
									<?php 
                    }
                    ?>
											<input type="text" name="<?php 
                    echo esc_attr($field_id);
                    ?>
_display" id="<?php 
                    echo esc_attr($field_id);
                    ?>
" value="<?php 
                    echo esc_attr($the_display_value);
                    ?>
" class="regular-text" size="35" disabled="disabled" /><br />
											<span class="description"><?php 
                    echo $field_values['description'];
                    ?>
</span>
									<?php 
                    break;
                default:
                    ?>
											<input type="text" name="<?php 
                    echo esc_attr($field_id);
                    ?>
" id="<?php 
                    echo esc_attr($field_id);
                    ?>
" value="<?php 
                    echo esc_attr($the_value);
                    ?>
" class="regular-text" size="35" <?php 
                    echo esc_attr($protected);
                    ?>
 /><br />
											<span class="description"><?php 
                    echo $field_values['description'];
                    ?>
</span>
								<?php 
                    break;
                    //close the row
                    ?>
							</td>
						</tr>
			<?php 
            }
        }
        ?>

		</table>

<?php 
    }
Exemple #2
0
/**
 * Displays membership package custom columns data.
 *
 * @param string $column_index
 * @param int $post_id
 *
 * @return void
 */
function cp_package_membership_add_column_data($column_index, $post_id)
{
    $package = cp_get_membership_package($post_id);
    if (!$package) {
        return;
    }
    switch ($column_index) {
        case 'description':
            echo strip_tags($package->description);
            break;
        case 'price':
            echo cp_get_membership_package_benefit_text($package->ID);
            break;
        case 'terms':
            printf(__('%1$s / %2$s days', APP_TD), appthemes_get_price($package->price), $package->duration);
            break;
        case 'status':
            if ($package->post_status == 'publish') {
                _e('Active', APP_TD);
            } else {
                _e('Inactive', APP_TD);
            }
            break;
    }
}
Exemple #3
0
/**
 * Returns membership package.
 *
 * @deprecated 3.4
 * @deprecated Use cp_get_membership_package()
 * @see cp_get_membership_package()
 *
 * @param int $pack_id
 * @param string $type (optional)
 * @param string $return (optional)
 *
 * @return mixed
 */
function get_pack($pack_id, $type = '', $return = '')
{
    _deprecated_function(__FUNCTION__, '3.4', 'cp_get_membership_package');
    $package = cp_get_membership_package($pack_id);
    if (!empty($return) && !empty($package)) {
        $package = (array) $package;
        if ($return == 'array') {
            return $package;
        } else {
            return $package[$return];
        }
    }
    return $package;
}
Exemple #4
0
?>
</li>
					<li><strong><?php 
_e('Last Login:'******'Your membership pack "%1$s" expired on %2$s.', APP_TD), $membership->pack_name, appthemes_display_date($current_user->membership_expires));
        ?>
</li>
						<li><a href="<?php 
        echo CP_MEMBERSHIP_PURCHASE_URL;
        ?>
"><?php 
        _e('Renew Your Membership Pack', APP_TD);
        ?>
Exemple #5
0
 /**
  * Displays extra notices.
  *
  * return void
  */
 public function display_extra_messages()
 {
     global $current_user;
     $package = cp_get_membership_package($this->package_id);
     $current_membership = $this->get_current_membership();
     if ($current_membership && $current_membership->ID != $package->ID) {
         $days_remining = appthemes_days_between_dates($current_user->membership_expires);
         $message = sprintf(__('Your Current Membership (%1$s) will be canceled upon purchase. This membership still has %2$s days remaining.', APP_TD), $current_membership->pack_name, $days_remining);
         appthemes_display_notice('error', $message);
     }
 }
Exemple #6
0
/**
 * Returns user membership package.
 *
 * @param int $user_id
 *
 * @return object
 */
function cp_get_user_membership_package($user_id)
{
    $user = get_user_by('id', $user_id);
    if (!$user) {
        return false;
    }
    if (empty($user->active_membership_pack) || empty($user->membership_expires)) {
        return false;
    }
    $current_membership = cp_get_membership_package($user->active_membership_pack);
    if ($current_membership && appthemes_days_between_dates($user->membership_expires) > 0) {
        return $current_membership;
    }
    return false;
}
Exemple #7
0
/**
 * Sends email reminder about ending membership plan, default is 7 days before expire.
 * Cron jobs execute the following function once per day.
 *
 * @return void
 */
function cp_membership_reminder_cron()
{
    global $wpdb, $cp_options;
    if (!$cp_options->membership_ending_reminder_email) {
        return;
    }
    $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
    $subject = sprintf(__('Membership Subscription Ending on %s', APP_TD), $blogname);
    $siteurl = home_url('/');
    $days_before = $cp_options->membership_ending_reminder_days;
    $days_before = is_numeric($days_before) ? $days_before : 7;
    $timestamp = wp_next_scheduled('cp_send_membership_reminder');
    $timestamp = $timestamp - 1 * 24 * 60 * 60 + get_option('gmt_offset') * 3600;
    // minus 1 day to get current schedule time, plus GMT offset
    $date_max = date('Y-m-d H:i:s', $timestamp + $days_before * 24 * 60 * 60);
    $date_min = date('Y-m-d H:i:s', $timestamp + ($days_before - 1) * 24 * 60 * 60);
    $query_users = $wpdb->prepare("SELECT {$wpdb->users}.ID FROM {$wpdb->users}\n\t\tLEFT JOIN {$wpdb->usermeta} ON {$wpdb->users}.ID = {$wpdb->usermeta}.user_id\n\t\tWHERE {$wpdb->usermeta}.meta_key = 'membership_expires'\n\t\tAND {$wpdb->usermeta}.meta_value < %s\n\t\tAND {$wpdb->usermeta}.meta_value > %s\n\t\t", $date_max, $date_min);
    $userids = $wpdb->get_col($query_users);
    if (!$userids) {
        return;
    }
    $users = array();
    foreach ($userids as $user_id) {
        $user = get_userdata($user_id);
        $mailto = $user->user_email;
        $user_login = appthemes_clean($user->user_login);
        $membership = cp_get_membership_package($user->active_membership_pack);
        $membership_pack_name = appthemes_clean($membership->pack_name);
        $membership_expires = appthemes_display_date($user->membership_expires);
        $message = html('p', sprintf(__('Hi %s,', APP_TD), $user_login)) . PHP_EOL;
        $message .= html('p', sprintf(__('Your membership pack will expire in %d days! Please renew your membership to continue posting classified ads.', APP_TD), $days_before)) . PHP_EOL;
        $message_details = __('Membership Details', APP_TD) . '<br />';
        $message_details .= __('-----------------', APP_TD) . '<br />';
        $message_details .= sprintf(__('Membership Pack: %s', APP_TD), $membership_pack_name) . '<br />';
        $message_details .= sprintf(__('Membership Expires: %s', APP_TD), $membership_expires) . '<br />';
        $message_details .= sprintf(__('Renew Your Membership Pack: %s', APP_TD), html_link(CP_MEMBERSHIP_PURCHASE_URL)) . '<br />';
        $message .= html('p', $message_details) . PHP_EOL;
        $message .= html('p', sprintf(__('For questions or problems, please contact us directly at %s', APP_TD), get_option('admin_email')));
        $message .= html('p', __('Regards,', APP_TD) . '<br />' . sprintf(__('Your %s Team', APP_TD), $blogname));
        $message .= html('p', html_link($siteurl));
        $email = array('to' => $mailto, 'subject' => $subject, 'message' => $message);
        $email = apply_filters('cp_email_user_membership_reminder', $email, $user_id);
        appthemes_send_email($email['to'], $email['subject'], $email['message']);
        $users[$user_id] = array('user' => html_link(sprintf('mailto:%s', $user->user_email), $user->user_login), 'membership' => $membership->pack_name, 'expires' => $user->membership_expires);
    }
    // allow overriding admin notifications
    if (!apply_filters('cp_admin_membership_reminder', true, $users)) {
        return;
    }
    ### notify admin
    // loop through the users again to notify the admin about expiring memberships
    foreach ($users as $user_id => $data) {
        $items[] = $data;
    }
    if (!empty($items)) {
        $table = new APP_Email_Table($items);
        $admin_email = get_option('admin_email');
        $message = html('p', __('Dear Admin,', APP_TD)) . PHP_EOL;
        $message .= html('p', sprintf(__('Membership pack for these users expire in %d days! These users will need to renew their membership to continue posting classified ads on your site:', APP_TD), $days_before)) . PHP_EOL;
        $message .= html('p', $table->display()) . PHP_EOL;
        $email = array('to' => $admin_email, 'subject' => $subject, 'message' => $message);
        appthemes_send_email($email['to'], $email['subject'], $email['message']);
    }
}