/** * 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); }
/** * 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; } }