124 lines
1.8 KiB
PHP
124 lines
1.8 KiB
PHP
<?php
|
|
|
|
class acf_settings_addons {
|
|
|
|
var $view;
|
|
|
|
|
|
/*
|
|
* __construct
|
|
*
|
|
* Initialize filters, action, variables and includes
|
|
*
|
|
* @type function
|
|
* @date 23/06/12
|
|
* @since 5.0.0
|
|
*
|
|
* @param n/a
|
|
* @return n/a
|
|
*/
|
|
|
|
function __construct() {
|
|
|
|
// actions
|
|
add_action( 'admin_menu', array( $this, 'admin_menu' ) );
|
|
}
|
|
|
|
|
|
/*
|
|
* admin_menu
|
|
*
|
|
* This function will add the ACF menu item to the WP admin
|
|
*
|
|
* @type action (admin_menu)
|
|
* @date 28/09/13
|
|
* @since 5.0.0
|
|
*
|
|
* @param n/a
|
|
* @return n/a
|
|
*/
|
|
|
|
function admin_menu() {
|
|
|
|
// bail early if no show_admin
|
|
if( !acf_get_setting('show_admin') )
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
// add page
|
|
$page = add_submenu_page('edit.php?post_type=acf-field-group', __('Add-ons','acf'), __('Add-ons','acf'), acf_get_setting('capability'),'acf-settings-addons', array($this,'html') );
|
|
|
|
|
|
// actions
|
|
add_action('load-' . $page, array($this,'load'));
|
|
|
|
}
|
|
|
|
|
|
/*
|
|
* load
|
|
*
|
|
* description
|
|
*
|
|
* @type function
|
|
* @date 7/01/2014
|
|
* @since 5.0.0
|
|
*
|
|
* @param $post_id (int)
|
|
* @return $post_id (int)
|
|
*/
|
|
|
|
function load() {
|
|
|
|
// vars
|
|
$this->view = array(
|
|
'json' => array(),
|
|
);
|
|
|
|
|
|
// load json
|
|
$request = wp_remote_post( 'https://assets.advancedcustomfields.com/add-ons/add-ons.json' );
|
|
|
|
// validate
|
|
if( is_wp_error($request) || wp_remote_retrieve_response_code($request) != 200)
|
|
{
|
|
acf_add_admin_notice(__('<b>Error</b>. Could not load add-ons list', 'acf'), 'error');
|
|
}
|
|
else
|
|
{
|
|
$this->view['json'] = json_decode( $request['body'], true );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/*
|
|
* html
|
|
*
|
|
* description
|
|
*
|
|
* @type function
|
|
* @date 7/01/2014
|
|
* @since 5.0.0
|
|
*
|
|
* @param $post_id (int)
|
|
* @return $post_id (int)
|
|
*/
|
|
|
|
function html() {
|
|
|
|
// load view
|
|
acf_get_view('settings-addons', $this->view);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
// initialize
|
|
new acf_settings_addons();
|
|
|
|
?>
|