示例#1
0
/**
 * Performs redirect actions
 *
 * @since  	1.0
 * @uses  	edd_wl_is_private_list()
 * @uses 	edd_wl_get_wish_list_uri()
 * @return 	void
 */
function edd_wl_redirects()
{
    // Prevent private lists from being viewed. Also only allows users to access edit slugs with own list ID
    if (edd_wl_is_private_list() || !edd_wl_is_users_list(get_query_var('edit')) && get_query_var('edit')) {
        // Don't redirect if we're on single download page.
        // Extra check to fix compatibility with crowdfunding extension or any other extension that uses an edit query var on the single download page
        if (!is_singular('download')) {
            $redirect = apply_filters('edd_wl_private_redirect', edd_wl_get_wish_list_uri());
            wp_redirect($redirect);
            edd_die();
        }
    }
    // redirect if edit or view page is accessed but edit/view query_var does not exist
    if (edd_wl_is_page('view') && !get_query_var('view') || edd_wl_is_page('edit') && !get_query_var('edit')) {
        wp_redirect(edd_wl_get_wish_list_uri());
        edd_die();
    }
}
/**
 * Edit settings link
 * @since  1.0.2
 */
function edd_wl_edit_settings_link($list_id, $args = array())
{
    // exit if no edit page is selection
    if (apply_filters('edd_wl_edit_settings_link_return', 'none' == edd_get_option('edd_wl_page_edit'))) {
        return;
    }
    // don't show if not user's list
    if (!edd_wl_is_users_list($list_id)) {
        return;
    }
    $defaults = apply_filters('edd_wl_edit_settings_link_defaults', array('text' => __('Edit settings', 'edd-wish-lists'), 'wrapper_class' => '', 'wrapper' => 'p', 'class' => ''));
    $args = wp_parse_args($args, $defaults);
    extract($args, EXTR_SKIP);
    $class = $class ? 'class="' . trim($class) . '"' : '';
    ob_start();
    $uri = apply_filters('edd_wl_edit_settings_link_uri', edd_wl_get_wish_list_edit_uri($list_id), $list_id);
    $html = '';
    $link = '<a href="' . $uri . '" ' . $class . ' title="' . $text . '">' . $text . '</a>';
    if ($wrapper) {
        $html = '<' . $wrapper . ' class="' . $wrapper_class . '"' . '>' . $link . '</' . $wrapper . '>';
    } else {
        $html .= $link;
    }
    echo $html;
    $html = ob_get_clean();
    return apply_filters('edd_wl_edit_settings_link', $html);
}
示例#3
0
/**
 * List is private
 *
 * This is used to redirect, or prevent viewing or editing of private lists
 * @return [type]
 */
function edd_wl_is_private_list()
{
    if (get_query_var('wl_view')) {
        $list_id = get_query_var('wl_view');
    } elseif (get_query_var('wl_edit')) {
        $list_id = get_query_var('wl_edit');
    } else {
        $list_id = '';
    }
    if (!$list_id) {
        return;
    }
    $list_status = get_post_status($list_id);
    if ('private' == $list_status && !edd_wl_is_users_list($list_id) && (edd_wl_is_page('view') || edd_wl_is_page('edit'))) {
        return true;
    }
}