Current Path : /storage/v11800/affypharma/public_html/wp-content/plugins/auxin-elements/includes/classes/ |
Linux v11800 5.3.0-1023-aws #25~18.04.1-Ubuntu SMP Fri Jun 5 15:19:18 UTC 2020 aarch64
|
Current File : /storage/v11800/affypharma/public_html/wp-content/plugins/auxin-elements/includes/classes/class-auxin-install.php |
<?php
/**
* Adding options and capabilities while theme is installed
*
*
* @package Auxin
* @license LICENSE.txt
* @author averta
* @link http://phlox.pro/
* @copyright (c) 2010-2024 averta
*/
// no direct access allowed
if ( ! defined('ABSPATH') ) exit;
class Auxin_Install {
/**
* Instance of this class.
*
* @var object
*/
protected static $instance = null;
public function __construct(){
// Add theme capabilities on theme activation
add_action( 'after_switch_theme', array( $this, 'install' ) );
// will be @deprecated in version 2.0
add_action( 'init', array( $this, 'install' ) );
}
/**
* Install theme requirements
*/
public function install(){
$this->add_capabilities();
}
/**
* Add theme custom capabilities
*/
public function add_capabilities() {
// check if custom capabilities are added before or not
if( get_theme_mod( 'auxin_capabilities_added', 0 ) ){
return;
}
global $wp_roles;
if ( class_exists( 'WP_Roles' ) ) {
if ( ! isset( $wp_roles ) ) {
$wp_roles = new WP_Roles();
}
}
if ( is_object( $wp_roles ) ) {
$capabilities = $this->get_theme_capabilities();
foreach ( $capabilities as $cap_group ) {
foreach ( $cap_group as $cap ) {
$wp_roles->add_cap( 'administrator', $cap );
$wp_roles->add_cap( 'editor' , $cap );
}
}
}
set_theme_mod( 'auxin_capabilities_added', 1 );
}
/**
* Get capabilities for auxin - Will be assigned during theme activation
*
* @return array
*/
public function get_theme_capabilities() {
$capabilities = array();
$active_post_types = auxin_get_possible_post_types(true);
foreach ( $active_post_types as $post_type => $is_active ) {
$capabilities[ $post_type ] = array(
// Post type
"edit_{$post_type}",
"read_{$post_type}",
"delete_{$post_type}",
"edit_{$post_type}s",
"edit_others_{$post_type}s",
"publish_{$post_type}s",
"read_private_{$post_type}s",
"delete_{$post_type}s",
"delete_private_{$post_type}s",
"delete_published_{$post_type}s",
"delete_others_{$post_type}s",
"edit_private_{$post_type}s",
"edit_published_{$post_type}s",
// Terms
"manage_{$post_type}_terms",
"edit_{$post_type}_terms",
"delete_{$post_type}_terms",
"assign_{$post_type}_terms"
);
}
return $capabilities;
}
/**
* Return an instance of this class.
*
* @return object A single instance of this class.
*/
public static function get_instance() {
// If the single instance hasn't been set, set it now.
if ( null == self::$instance ) {
self::$instance = new self;
}
return self::$instance;
}
}