is_blocked(); } /** * Wrapper to get the login page location. * * @since 3.1.1 * @since 3.1.2 Added redirect_to parameter. * * @global object $wpmem The WP_Members object. * @param string $redirect_to URL to return to (optional). * @return string $url The login page url. */ function wpmem_login_url( $redirect_to = false ) { global $wpmem; if ( $redirect_to ) { $url = add_query_arg( 'redirect_to', urlencode( $redirect_to ), $wpmem->user_pages['login'] ); } else { $url = $wpmem->user_pages['login']; } return $url; } /** * Wrapper to get the register page location. * * @since 3.1.1 * * @global object $wpmem The WP_Members object. * @return string The register page url. */ function wpmem_register_url() { global $wpmem; return $wpmem->user_pages['register']; } /** * Wrapper to get the profile page location. * * @since 3.1.1 * @since 3.1.2 Added $a parameter. * * @global object $wpmem The WP_Members object. * @param string $a Action (optional). * @return string The profile page url. */ function wpmem_profile_url( $a = false ) { global $wpmem; return ( $a ) ? add_query_arg( 'a', $a, $wpmem->user_pages['profile'] ) : $wpmem->user_pages['profile']; } /** * Returns an array of user pages. * * @since 3.1.2 * @since 3.1.3 Added array keys. * * @return array $pages { * The URLs of login, register, and user profile pages. * * @type string $login * @type string $register * @type string $profile * } */ function wpmem_user_pages() { $pages = array( 'login' => trailingslashit( wpmem_login_url() ), 'register' => trailingslashit( wpmem_register_url() ), 'profile' => trailingslashit( wpmem_profile_url() ), ); return $pages; } /** * Returns the current full url. * * @since 3.1.1 * @since 3.1.7 Added check for query string. * * @global object $wp * @param boolean $slash Trailing slash the end of the url (default:true). * @param boolean $getq Toggles getting the query string (default:true). * @return string $url The current page full url path. */ function wpmem_current_url( $slash = true, $getq = true ) { global $wp; $url = home_url( add_query_arg( array(), $wp->request ) ); $url = ( $slash ) ? trailingslashit( $url ) : $url; $url = ( $getq && count( $_GET ) > 0 ) ? $url . '?' . $_SERVER['QUERY_STRING'] : $url; return $url; } /** * Gets post ID of current URL. * * @since 3.1.7 * * @return int Post ID. */ function wpmem_current_post_id() { return url_to_postid( wpmem_current_url() ); } /** * Wrapper to return a string from the get_text function. * * @since 3.1.1 * @since 3.1.2 Added $echo argument. * * @global object $wpmem The WP_Members object. * @param string $str The string to retrieve. * @param bool $echo Print the string (default: false). * @return string $str The localized string. */ function wpmem_gettext( $str, $echo = false ) { global $wpmem; if ( $echo ) { echo $wpmem->get_text( $str ); } else { return $wpmem->get_text( $str ); } } /** * Wrapper to use custom dialog. * * @since 3.1.1 * * @param array $defaults Dialog message defaults from the wpmem_msg_dialog_arr filter. * @param string $tag The dialog tag/name. * @param array $dialogs The dialog settings array (passed through filter). * @return array $dialogs The dialog settings array (filtered). */ function wpmem_use_custom_dialog( $defaults, $tag, $dialogs ) { $defaults['msg'] = __( $dialogs[ $tag ], 'wp-members' ); return $defaults; } /** * Returns or displays the user's login status. * * @since 2.0.0 * @since 3.1.2 Moved to api.php, no longer pluggable. * @since 3.1.6 Dependencies now loaded by object. * * @param boolean $echo Determines whether function should print result or not (default: true). * @return string $status The user status string produced by wpmem_inc_memberlinks(). */ function wpmem_login_status( $echo = true ) { if ( is_user_logged_in() ) { $status = wpmem_inc_memberlinks( 'status' ); if ( $echo ) { echo $status; } return $status; } } /** * Utility function to validate $_POST, $_GET, and $_REQUEST. * * While this function retrieves data, remember that the data should generally be * sanitized or escaped depending on how it is used. * * @since 3.1.3 * * @param string $tag The form field or query string. * @param string $default The default value (optional). * @param string $type post|get|request (optional). * @return string */ function wpmem_get( $tag, $default = '', $type = 'post' ) { switch ( $type ) { case 'post': return ( isset( $_POST[ $tag ] ) ) ? $_POST[ $tag ] : $default; break; case 'get': return ( isset( $_GET[ $tag ] ) ) ? $_GET[ $tag ] : $default; break; case 'request': return ( isset( $_REQUEST[ $tag ] ) ) ? $_REQUEST[ $tag ] : $default; break; } } /** * Compares wpmem_reg_page value with the register page URL. * * @since 3.1.4 * @since 3.1.7 Added default of current page ID. * * @param string|int $check_page * @return bool */ function wpmem_is_reg_page( $check = false ) { if ( ! $check ) { $check = get_the_ID(); } else { if ( ! is_int( $check ) ) { global $wpdb; $sql = "SELECT ID FROM $wpdb->posts WHERE post_name = '$check' AND post_status = 'publish' LIMIT 1"; $arr = $wpdb->get_results( $sql, ARRAY_A ); $check = $arr[0]['ID']; } } $reg_page = wpmem_get( 'wpmem_reg_page' ); $check_page = get_permalink( $check ); return ( $check_page == $reg_page ) ? true : false; } /** * Creates a login/logout link. * * @since 3.1.6 * * @param array $args { * Array of arguments to customize output. * * @type string $login_redirect_to The url to redirect to after login (optional). * @type string $logout_redirect_to The url to redirect to after logout (optional). * @type string $login_text Text for the login link (optional). * @type string $logout_text Text for the logout link (optional). * } * @param boolean $echo (default: false) * @return string $link */ function wpmem_loginout( $args = array(), $echo = false ) { $defaults = array( 'login_redirect_to' => ( isset( $args['login_redirect_to'] ) ) ? $args['login_redirect_to'] : wpmem_current_url(), 'logout_redirect_to' => ( isset( $args['logout_redirect_to'] ) ) ? $args['logout_redirect_to'] : wpmem_current_url(), // @todo - This is not currently active. 'login_text' => ( isset( $args['login_text'] ) ) ? $args['login_text'] : __( 'log in', 'wp-members' ), 'logout_text' => ( isset( $args['logout_text'] ) ) ? $args['logout_text'] : __( 'log out', 'wp-members' ), ); $args = wp_parse_args( $args, $defaults ); $redirect = ( is_user_logged_in() ) ? $args['logout_redirect_to'] : $args['login_redirect_to']; $text = ( is_user_logged_in() ) ? $args['logout_text'] : $args['login_text']; if ( is_user_logged_in() ) { /** This filter is defined in /inc/dialogs.php */ $link = apply_filters( 'wpmem_logout_link', add_query_arg( 'a', 'logout' ) ); } else { $link = wpmem_login_url( $redirect ); } $link = sprintf( '%s', $link, $text ); return $link; } /** * Dispalays requested dialog. * * @since 3.2.0 * * @todo Needs testing and finalization before release. */ function wpmem_display_message( $tag, $echo = true ) { if ( $echo ) { echo wpmem_inc_regmessage( $tag ); } else { return wpmem_inc_regmessage( $tag ); } } // End of file.