plugin_name = $plugin_name; $this->version = $version; $this->settings = $settings; } /** * Initialize extranet metabox * * @since 1.3 */ public function init_extranet_domain( $domains ) { $options = array_map( function ( $value ) { return [ 'option' => $value['kiosque_url'], 'text' => $value['kiosque_url'] ]; }, $domains ); $this->extranet_domain['options'] = array_filter( $options, function ( $option ) { return $option['option'] != ""; } ); } /** * Add extranet metabox * * @since 1.3 */ public function add_extranet_metabox() { $domains = $this->fetch_parent_domain(); if( $domains ) { $this->init_extranet_domain( $domains ); if( count( $this->extranet_domain['options'] ) > 0 ) { add_meta_box( 'extranet_domain_metabox', 'Extranet Domain', array( $this, 'extranet_box_html' ), 'page', 'side' ); } } } /** * Extranet metabox content * * @param $post */ public function extranet_box_html( $post ) { $value = get_post_meta( $post->ID, Aec_Admin_Page_Settings::META_NAME, true ); wp_nonce_field( Aec_Admin_Page_Settings::NONCE_ACTION, Aec_Admin_Page_Settings::NONCE_KEY ); ?> extranet_domain_on_delete( $postID ); } return $postID; } /** * Extranet metabox delete * * @param $postID * @return mixed */ public function extranet_domain_on_delete( $postID ) { delete_post_meta( $postID, Aec_Admin_Page_Settings::META_NAME ); return $postID; } private function fetch_parent_domain() { $response = wp_remote_get( $this->settings['app_url'] . '/api/private/wp-editor/v1/establishments?returnParent=true', array( 'headers' => array( 'api_key' => $this->settings['api_key'] ) ) ); if( !is_wp_error( $response ) && !empty($response['body']) ) { $body = json_decode( $response['body'], true ); if( array_key_exists( 'message', $body ) ) { return null; } else { return $body; } } else { return null; } } }