mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
da4a5ccce6
Introduce `um_post_is_predefined_page` to determine if a given post ID corresponds to a predefined page. This enhances functionality by allowing checks against predefined page slugs mapped in the plugin configuration.
106 lines
2.0 KiB
PHP
Executable File
106 lines
2.0 KiB
PHP
Executable File
<?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 int $post_id
|
|
*
|
|
* @return bool
|
|
*/
|
|
function um_post_is_predefined_page( $post_id ) {
|
|
$predefined_pages = UM()->config()->get( 'predefined_pages' );
|
|
$predefined_pages = array_keys( $predefined_pages );
|
|
if ( empty( $predefined_pages ) ) {
|
|
return false;
|
|
}
|
|
|
|
foreach ( $predefined_pages as $slug ) {
|
|
if ( um_is_predefined_page( $slug, $post_id ) ) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* @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;
|
|
}
|