Файловый менеджер - Редактировать - /home/bkunreyz/input.managedmedia.org/wp-content/plugins/ultimate-member/includes/common/class-cpt.php
Назад
<?php namespace um\common; if ( ! defined( 'ABSPATH' ) ) { exit; } if ( ! class_exists( 'um\common\CPT' ) ) { /** * Class CPT * * @package um\common * * @since 2.6.8 */ class CPT { public function hooks() { add_action( 'init', array( &$this, 'create_post_types' ), 1 ); add_action( 'transition_post_status', array( &$this, 'change_default_form' ), 10, 3 ); } /** * Create taxonomies for use for UM */ public function create_post_types() { register_post_type( 'um_form', array( 'labels' => array( 'name' => __( 'Forms', 'ultimate-member' ), 'singular_name' => __( 'Form', 'ultimate-member' ), 'add_new' => __( 'Add New', 'ultimate-member' ), 'add_new_item' => __( 'Add New Form', 'ultimate-member' ), 'edit_item' => __( 'Edit Form', 'ultimate-member' ), 'not_found' => __( 'You did not create any forms yet', 'ultimate-member' ), 'not_found_in_trash' => __( 'Nothing found in Trash', 'ultimate-member' ), 'search_items' => __( 'Search Forms', 'ultimate-member' ), ), 'capabilities' => array( 'edit_post' => 'manage_options', 'read_post' => 'manage_options', 'delete_post' => 'manage_options', 'edit_posts' => 'manage_options', 'edit_others_posts' => 'manage_options', 'delete_posts' => 'manage_options', 'publish_posts' => 'manage_options', 'read_private_posts' => 'manage_options', ), 'show_ui' => true, 'show_in_menu' => false, 'public' => false, 'show_in_rest' => true, 'supports' => array( 'title' ), ) ); if ( UM()->options()->get( 'members_page' ) ) { register_post_type( 'um_directory', array( 'labels' => array( 'name' => __( 'Member Directories', 'ultimate-member' ), 'singular_name' => __( 'Member Directory', 'ultimate-member' ), 'add_new' => __( 'Add New', 'ultimate-member' ), 'add_new_item' => __( 'Add New Member Directory', 'ultimate-member' ), 'edit_item' => __( 'Edit Member Directory', 'ultimate-member' ), 'not_found' => __( 'You did not create any member directories yet', 'ultimate-member' ), 'not_found_in_trash' => __( 'Nothing found in Trash', 'ultimate-member' ), 'search_items' => __( 'Search Member Directories', 'ultimate-member' ), ), 'capabilities' => array( 'edit_post' => 'manage_options', 'read_post' => 'manage_options', 'delete_post' => 'manage_options', 'edit_posts' => 'manage_options', 'edit_others_posts' => 'manage_options', 'delete_posts' => 'manage_options', 'publish_posts' => 'manage_options', 'read_private_posts' => 'manage_options', ), 'show_ui' => true, 'show_in_menu' => false, 'public' => false, 'show_in_rest' => true, 'supports' => array( 'title' ), ) ); } } /** * @since 2.8.0 * @return array */ public function get_list() { $cpt_list = array( 'um_form', ); if ( UM()->options()->get( 'members_page' ) ) { $cpt_list[] = 'um_directory'; } /** * Filters registered CPT in Ultimate Member. * * @since 2.0 * @hook um_cpt_list * * @param {array} $cpt_list CPT keys. * * @return {array} CPT keys. * * @example <caption>Add `my_cpt` CPT to UM CPT list.</caption> * function um_custom_cpt_list( $cpt_list ) { * $cpt_list[] = '{my_cpt}'; * return $cpt_list; * } * add_filter( 'um_cpt_list', 'um_custom_cpt_list' ); */ return apply_filters( 'um_cpt_list', $cpt_list ); } /** * @param null|string $post_type * * @since 2.8.0 * * @return array */ public function get_taxonomies_list( $post_type = null ) { $taxonomies = apply_filters( 'um_cpt_taxonomies_list', array() ); if ( isset( $post_type ) ) { $taxonomies = array_key_exists( $post_type, $taxonomies ) ? $taxonomies[ $post_type ] : array(); } return $taxonomies; } /** * Update default forms IDs for predefined page installation on the forms or directory posts status update. * * @since 2.8.6 * * @param string $new_status New post status * @param string $old_status Old post status * @param object $post Post object */ public function change_default_form( $new_status, $old_status, $post ) { if ( ! in_array( $post->post_type, array( 'um_form', 'um_directory' ), true ) ) { return; } $key = 'um_form' === $post->post_type ? 'um_core_forms' : 'um_core_directories'; $core_ids = get_option( $key, array() ); $post_id = $post->ID; if ( 'publish' === $new_status ) { $mode = 'members'; if ( 'um_form' === $post->post_type ) { $meta_value_mode = get_post_meta( $post_id, '_um_mode', true ); if ( ! empty( $meta_value_mode ) ) { $mode = $meta_value_mode; } elseif ( ! empty( $_POST['form']['_um_mode'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification -- already verified here $mode = sanitize_key( $_POST['form']['_um_mode'] ); // phpcs:ignore WordPress.Security.NonceVerification -- already verified here } } // $mode can be empty on the first installation if ( empty( $mode ) ) { return; } // Set current published form or member directory as predefined in the case when old default doesn't exist or hasn't a `publish` status. if ( empty( $core_ids[ $mode ] ) || 'publish' !== get_post_status( $core_ids[ $mode ] ) ) { $core_ids[ $mode ] = $post_id; /** * Filters Ultimate Member default forms IDs. * * @param {array} $core_ids Default form IDs. * @param {object} $post WP_Post object. * @param {string} $new_status New status. 'publish|trash' * * @return {array} Default forms IDs. * * @since 2.8.6 * @hook um_change_default_forms_ids * * @example <caption>Set default profile form ID as 1.</caption> * function my_um_change_default_forms_ids( $core_forms, $post, $new_status ) { * // your code here * $core_forms['profile'] = 1; * return $core_forms; * } * add_filter( 'um_change_default_forms_ids', 'my_um_change_default_forms_ids', 10, 3 ); */ $core_ids = apply_filters( 'um_change_default_forms_ids', $core_ids, $post, $new_status ); update_option( $key, $core_ids ); } } elseif ( 'trash' === $new_status ) { $mode = 'members'; if ( 'um_form' === $post->post_type ) { $meta_value_mode = get_post_meta( $post_id, '_um_mode', true ); $mode = $meta_value_mode; } if ( absint( $post_id ) === absint( $core_ids[ $mode ] ) ) { // Find the first publish form or directory to set it as default for predefined page. $args = array( 'post_type' => $post->post_type, 'meta_key' => '_um_mode', 'meta_value' => 'members' !== $mode ? $mode : 'directory', 'posts_per_page' => 1, 'orderby' => 'date', 'post_status' => 'publish', 'order' => 'DESC', 'fields' => 'ids', 'post__not_in' => array( $post_id ), ); $forms = get_posts( $args ); if ( ! empty( $forms ) ) { $new_post_id = $forms[0]; $core_ids[ $mode ] = $new_post_id; /** This filter is documented in includes/common/class-cpt.php */ $core_ids = apply_filters( 'um_change_default_forms_ids', $core_ids, $post, $new_status ); update_option( $key, $core_ids ); } } } } } }
| ver. 1.6 |
Github
|
.
| PHP 8.2.30 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка