um-core-functions.php
1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
/**
* Ultimate Member Core Functions
*
* General core functions available on both the front-end and admin.
*
* @version 2.8.3
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* @param string $slug
*
* @return bool
*/
function um_predefined_page_slug_exists( $slug ) {
$predefined_pages = UM()->config()->get( 'predefined_pages' );
return array_key_exists( $slug, $predefined_pages );
}
/**
* @param string $slug
*
* @return false|int
*/
function um_get_predefined_page_id( $slug ) {
if ( ! um_predefined_page_slug_exists( $slug ) ) {
return false;
}
$option_key = UM()->options()->get_predefined_page_option_key( $slug );
return apply_filters( 'um_get_predefined_page_id', UM()->options()->get( $option_key ), $slug );
}
/**
*
* @param string $slug
* @param null|int|\WP_Post $post
*
* @return bool
*/
function um_is_predefined_page( $slug, $post = null ) {
// handle $post inside, just we need make $post as \WP_Post. Otherwise something is wrong and return false
if ( ! $post ) {
global $post;
if ( empty( $post ) ) {
return false;
}
} else {
if ( is_numeric( $post ) ) {
$post = get_post( $post );
if ( empty( $post ) ) {
return false;
}
}
}
if ( empty( $post->ID ) ) {
return false;
}
return um_get_predefined_page_id( $slug ) === $post->ID;
}
/**
* Get predefined page URL
*
* @param string $slug
*
* @return false|string
*/
function um_get_predefined_page_url( $slug ) {
$url = false;
if ( $page_id = um_get_predefined_page_id( $slug ) ) {
$url = get_permalink( $page_id );
}
return $url;
}