__('Select', 'mybooktable'), 'post_title' => __('Post Title', 'mybooktable'), 'post_date' => __('Post Date', 'mybooktable'), 'author' => __('Author', 'mybooktable'), 'genre' => __('Genre', 'mybooktable'), 'tag' => __('Tag', 'mybooktable'), 'series' => __('Series', 'mybooktable'), 'series_order' => __('Series Order', 'mybooktable'), 'ascending' => __('Ascending', 'mybooktable'), 'descending' => __('Descending', 'mybooktable'), 'import_interrupted' => __('Import Interrupted', 'mybooktable'), 'import_complete' => __('Import Complete', 'mybooktable'), 'successfully_imported' => __('Successfully imported', 'mybooktable'), 'swich_to_mode' => __('Switch to mode', 'mybooktable'), 'set_author_priority' => __('Set the priority (order) of the authors', 'mybooktable'), 'enter_main_author_bio' => __('Edit the main author bio', 'mybooktable'), )); if(function_exists('wp_enqueue_media')) { wp_enqueue_media(); } } function mbt_add_admin_pages() { add_menu_page(__('MyBookTable', 'mybooktable'), __('MyBookTable', 'mybooktable'), 'edit_posts', 'mbt_dashboard', 'mbt_render_dashboard', 'dashicons-book-alt', '10.7'); add_submenu_page('mbt_dashboard', __('Books', 'mybooktable'), __('Books', 'mybooktable'), 'edit_posts', 'edit.php?post_type=mbt_book'); add_submenu_page('mbt_dashboard', __('Add Book', 'mybooktable'), __('Add Book', 'mybooktable'), 'edit_posts', 'post-new.php?post_type=mbt_book'); add_submenu_page('mbt_dashboard', __('Authors', 'mybooktable'), __('Authors', 'mybooktable'), 'manage_categories', 'edit-tags.php?taxonomy=mbt_author&post_type=mbt_book'); add_submenu_page('mbt_dashboard', __('Genres', 'mybooktable'), __('Genres', 'mybooktable'), 'manage_categories', 'edit-tags.php?taxonomy=mbt_genre&post_type=mbt_book'); add_submenu_page('mbt_dashboard', __('Series', 'mybooktable'), __('Series', 'mybooktable'), 'manage_categories', 'edit-tags.php?taxonomy=mbt_series&post_type=mbt_book'); add_submenu_page('mbt_dashboard', __('Tags', 'mybooktable'), __('Tags', 'mybooktable'), 'manage_categories', 'edit-tags.php?taxonomy=mbt_tag&post_type=mbt_book'); add_submenu_page('mbt_dashboard', __('Import Books', 'mybooktable'), __('Import Books', 'mybooktable'), 'edit_posts', 'mbt_import', 'mbt_render_import_page'); add_submenu_page('mbt_dashboard', __('MyBookTable Settings', 'mybooktable'), __('Settings', 'mybooktable'), 'manage_options', 'mbt_settings', 'mbt_render_settings_page'); add_submenu_page('mbt_dashboard', __('MyBookTable Help', 'mybooktable'), __('Help', 'mybooktable'), 'edit_posts', 'mbt_help', 'mbt_render_help_page'); if(mbt_get_upgrade() === false) { $page_hook = add_submenu_page('mbt_dashboard', __('Upgrade', 'mybooktable'), __('Upgrade MyBookTable', 'mybooktable'), 'edit_posts', 'mbt_upgrade_link', ' '); add_action('load-'.$page_hook, 'mbt_upgrade_link_redirect'); } remove_menu_page("edit.php?post_type=mbt_book"); remove_submenu_page("edit.php?post_type=mbt_book", "edit.php?post_type=mbt_book"); remove_submenu_page("edit.php?post_type=mbt_book", "post-new.php?post_type=mbt_book"); remove_submenu_page("edit.php?post_type=mbt_book", "edit-tags.php?taxonomy=mbt_author&post_type=mbt_book"); remove_submenu_page("edit.php?post_type=mbt_book", "edit-tags.php?taxonomy=mbt_genre&post_type=mbt_book"); remove_submenu_page("edit.php?post_type=mbt_book", "edit-tags.php?taxonomy=mbt_series&post_type=mbt_book"); remove_submenu_page("edit.php?post_type=mbt_book", "edit-tags.php?taxonomy=mbt_tag&post_type=mbt_book"); } function mbt_upgrade_link_redirect() { wp_safe_redirect('https://www.stormhillmedia.com/all-products/mybooktable/upgrades/', 301); exit(); } /*---------------------------------------------------------*/ /* Settings Page */ /*---------------------------------------------------------*/ function mbt_settings_page_init() { add_action('wp_ajax_mbt_api_key_refresh', 'mbt_api_key_refresh_ajax'); add_action('wp_ajax_mbt_style_pack_preview', 'mbt_style_pack_preview_ajax'); add_action('wp_ajax_mbt_button_size_preview', 'mbt_button_size_preview_ajax'); add_action('wp_ajax_mbt_check_reviews', 'mbt_check_reviews_ajax'); add_action('wp_ajax_mbt_google_api_key_refresh', 'mbt_google_api_key_refresh_ajax'); //needs to happen before setup.php admin_init in order to properly update admin notices add_action('admin_init', 'mbt_save_settings_page'); } add_action('mbt_init', 'mbt_settings_page_init'); function mbt_save_settings_page() { if( (isset($_REQUEST['page']) && $_REQUEST['page'] === 'mbt_settings') && ((isset($_REQUEST['data-settings-nonce']) && wp_verify_nonce(sanitize_key($_REQUEST['data-settings-nonce']),'mbt-settings-nonce'))) && isset($_REQUEST['save_settings'])) { do_action('mbt_settings_save'); if(isset($_REQUEST['mbt_api_key']) && $_REQUEST['mbt_api_key'] !== mbt_get_setting('api_key') && $_REQUEST['mbt_api_key'] !== mbt_hide_api_key(mbt_get_setting('api_key'))) { mbt_update_setting('api_key', sanitize_text_field(wp_unslash($_REQUEST['mbt_api_key']))); mbt_verify_api_key(); } if(isset($_REQUEST['mbt_product_name'])){ mbt_update_setting('product_name', sanitize_text_field(wp_unslash($_REQUEST['mbt_product_name']))); mbt_update_setting('product_slug', sanitize_title(wp_unslash($_REQUEST['mbt_product_name']))); } if(isset($_REQUEST['mbt_booktable_page'])){ mbt_update_setting('booktable_page', intval($_REQUEST['mbt_booktable_page'])); } mbt_update_setting('compatibility_mode', isset($_REQUEST['mbt_compatibility_mode'])); mbt_update_setting('enable_socialmedia_single_book',isset($_REQUEST['mbt_enable_socialmedia_single_book'])); mbt_update_setting('enable_socialmedia_book_excerpt', isset($_REQUEST['mbt_enable_socialmedia_book_excerpt'])); mbt_update_setting('enable_seo', isset($_REQUEST['mbt_enable_seo'])); if(isset($_REQUEST['mbt_style_pack'])){ mbt_update_setting('style_pack', sanitize_text_field(wp_unslash($_REQUEST['mbt_style_pack']))); } if(isset($_REQUEST['mbt_image_size'])){ mbt_update_setting('image_size', sanitize_text_field(wp_unslash($_REQUEST['mbt_image_size']))); } mbt_update_setting('reviews_type', isset($_REQUEST['mbt_reviews_type']) ? sanitize_text_field(wp_unslash($_REQUEST['mbt_reviews_type'])) : 'none'); if(isset($_REQUEST['mbt_buybutton_shadowbox'])){ mbt_update_setting('buybutton_shadowbox', sanitize_text_field(wp_unslash($_REQUEST['mbt_buybutton_shadowbox']))); } mbt_update_setting('enable_breadcrumbs', isset($_REQUEST['mbt_enable_breadcrumbs'])); mbt_update_setting('show_series', isset($_REQUEST['mbt_show_series'])); mbt_update_setting('show_find_bookstore', isset($_REQUEST['mbt_show_find_bookstore'])); mbt_update_setting('show_find_bookstore_buybuttons_shadowbox', isset($_REQUEST['mbt_show_find_bookstore_buybuttons_shadowbox'])); mbt_update_setting('show_about_author', isset($_REQUEST['mbt_show_about_author'])); mbt_update_setting('hide_domc_notice', isset($_REQUEST['mbt_hide_domc_notice'])); if(isset($_REQUEST['mbt_domc_notice_text'])){ mbt_update_setting('domc_notice_text', wp_kses_post(wp_unslash($_REQUEST['mbt_domc_notice_text']))); } if(isset($_REQUEST['mbt_posts_per_page'])){ mbt_update_setting('posts_per_page', intval(sanitize_text_field(wp_unslash($_REQUEST['mbt_posts_per_page'])))); } if(isset($_REQUEST['mbt_book_button_size'])){ mbt_update_setting('book_button_size', sanitize_text_field(wp_unslash($_REQUEST['mbt_book_button_size']))); } if(isset($_REQUEST['mbt_listing_button_size'])){ mbt_update_setting('listing_button_size', sanitize_text_field(wp_unslash($_REQUEST['mbt_listing_button_size']))); } if(isset($_REQUEST['mbt_widget_button_size'])){ mbt_update_setting('widget_button_size', sanitize_text_field(wp_unslash($_REQUEST['mbt_widget_button_size']))); } if(isset($_REQUEST['mbt_google_api_key'])){ mbt_update_setting('google_api_key', sanitize_text_field(wp_unslash($_REQUEST['mbt_google_api_key']))); } $settings_updated = true; } else if(isset($_REQUEST['page']) and $_REQUEST['page'] === 'mbt_settings' and isset($_REQUEST['save_default_affiliate_settings'])) { if(isset($_REQUEST['mbt_enable_default_affiliates']) and !empty($_REQUEST['mbt_enable_default_affiliates'])) { mbt_update_setting('enable_default_affiliates', $_REQUEST['mbt_enable_default_affiliates'] === 'true'); } } } function mbt_hide_api_key($key) { if (strlen($key) > 0){ return substr($key, 0, 4) . str_repeat("*", max(0, strlen($key)-4)); } } function mbt_api_key_refresh_ajax() { if(!current_user_can('manage_options')) { die(); } if(isset($_REQUEST['mbt_nonce']) && wp_verify_nonce(sanitize_key($_REQUEST['mbt_nonce']),'mbt-ajax-nonce')){ if(isset($_REQUEST['data']) && $_REQUEST['data'] !== mbt_hide_api_key(mbt_get_setting('api_key'))) { mbt_update_setting('api_key', sanitize_text_field(wp_unslash($_REQUEST['data']))); } mbt_verify_api_key(); echo(wp_kses_post(mbt_api_key_feedback())); die(); } else { die( esc_attr_e('Nonce Failed', 'mybooktable')); } } function mbt_api_key_feedback() { $output = ''; if(mbt_get_setting('api_key') and mbt_get_setting('api_key_status') != 0) { if(mbt_get_setting('api_key_status') > 0) { $output .= ''.__('Valid License Key', 'mybooktable').': '.mbt_get_setting('api_key_message').''; $upgrade_message = mbt_get_upgrade_message(false, '', ''); if(!empty($upgrade_message)) { $output .= '
'.$upgrade_message; } } else { $output .= ''.__('Invalid License Key', 'mybooktable').': '.mbt_get_setting('api_key_message').''; } } return $output; } function mbt_google_api_key_refresh_ajax() { if(!isset($_REQUEST['mbt_nonce']) || !wp_verify_nonce(sanitize_key($_REQUEST['mbt_nonce']), 'mbt-ajax-nonce')) { die(); } if(!empty($_REQUEST['data'])) { echo(''.esc_attr_e('Valid API Key', 'mybooktable').''); } die(); } function mbt_style_pack_preview_ajax() { if(!isset($_REQUEST['mbt_nonce']) || !wp_verify_nonce(sanitize_key($_REQUEST['mbt_nonce']), 'mbt-ajax-nonce')) { die(); } if(isset($_REQUEST['data'])){ echo(wp_kses_post('')); } die(); } function mbt_button_size_preview_ajax() { if(!isset($_REQUEST['mbt_nonce']) || !wp_verify_nonce(sanitize_key($_REQUEST['mbt_nonce']), 'mbt-ajax-nonce')) { die(); } if(isset($_REQUEST['data'])){ mbt_button_size_feedback(sanitize_text_field(wp_unslash($_REQUEST['data']))); } die(); } function mbt_button_size_feedback($size) { $id = 'mbt_book_'.time().'_'.wp_rand(); echo(wp_kses_post('')); echo(''); } function mbt_check_reviews_ajax() { if(!isset($_REQUEST['mbt_nonce']) || !wp_verify_nonce(sanitize_key($_REQUEST['mbt_nonce']), 'mbt-ajax-nonce')) { die(); } $output = ''; $reviews_types = mbt_get_reviews_types(); if(isset($_REQUEST['reviews_type'])){ $reviews_type = sanitize_text_field(wp_unslash($_REQUEST['reviews_type'])); } else { $reviews_type = ''; } if(!empty($reviews_types[$reviews_type]['book-check'])) { $books_query = new WP_Query(array('post_type' => 'mbt_book', 'posts_per_page' => -1)); $books_results = array(); foreach ($books_query->posts as $book) { $result = call_user_func_array($reviews_types[$reviews_type]['book-check'], array($book->ID)); $books_results[] = array('id' => $book->ID, 'title' => (strlen($book->post_title) > 30 ? substr($book->post_title, 0, 30) : $book->post_title), 'result' => $result); } $sort_books_results = function($a, $b) { $a_val = (strpos($a['result'], 'mbt_admin_message_failure') !== false) ? 0 : ((strpos($a['result'], 'mbt_admin_message_warning') !== false) ? 1 : 2); $b_val = (strpos($b['result'], 'mbt_admin_message_failure') !== false) ? 0 : ((strpos($b['result'], 'mbt_admin_message_warning') !== false) ? 1 : 2); return $a_val == $b_val ? 0 : ($a_val > $b_val ? 1 : -1); }; usort($books_results, $sort_books_results); $output .= ''; } else { $output .= '
This reviews system does not support reviews checking.
'; } echo(wp_kses_post($output)); exit(); } function mbt_render_settings_page() { $mbt_settings_nonce = wp_create_nonce('mbt-settings-nonce','data-settings-nonce'); $mbt_nonce = wp_create_nonce('mbt-ajax-nonce'); //if(!empty($_GET['mbt_setup_default_affiliates'])) { return mbt_render_setup_default_affiliates_page(); } ?>

.

Gumroad Library here','MyBookTable Upgrades');?>

>

Buy Button Styles
__('Small', 'mybooktable'), 'medium' => __('Medium', 'mybooktable'), 'large' => __('Large', 'mybooktable')); ?>

$size_name) { ?> class="mbt_feedback_refresh" data-refresh-action="mbt_button_size_preview" data-refresh-nonce="" data-element="mbt_book_button_size_">

$size_name) { ?> class="mbt_feedback_refresh" data-refresh-action="mbt_button_size_preview" data-refresh-nonce="" data-element="mbt_listing_button_size_">

$size_name) { ?> class="mbt_feedback_refresh" data-refresh-action="mbt_button_size_preview" data-refresh-nonce="" data-element="mbt_widget_button_size_">

developer documentation'); ?>

General Styles
__('Small', 'mybooktable'), 'medium' => __('Medium', 'mybooktable'), 'large' => __('Large', 'mybooktable')); ?> $size_name) { ?> >

>

Book Listing Styles

>


'); foreach($reviews_types as $slug => $reviews_data) { if(!empty($reviews_data['disabled'])) { echo(''); echo(wp_kses_post('
')); } else { echo(wp_kses_post('')); echo(wp_kses_post('
')); } } ?>

Checking…
-
>
>

>
>

(', admin_url('admin.php?page=mbt_settings&mbt_current_tab=5')).__('You must enter your Google Maps API Key for this feature to work', 'mybooktable').')'; ?>

>

>

>

'); if(mbt_get_setting('enable_default_affiliates')) { //echo(esc_attr_e('Amazon and Barnes & Noble Buy Buttons enabled!', 'mybooktable').sprintf('', esc_url(admin_url('admin.php?page=mbt_settings&mbt_setup_default_affiliates=1')).esc_attr_e('Disable').'')); } else { //echo(esc_attr_e('Amazon and Barnes & Noble Buy Buttons disabled!', 'mybooktable')); //echo ''.__('Enable', 'mybooktable').''; } //echo(''.__('What does this mean?', 'mybooktable').''); //echo('
'); } ?>

enable the Find Local Bookstore Form'); ?>


post_title; $file_path = get_post_meta(intval($_REQUEST['mbt_style_pack_id']), '_wp_attached_file', true); $nonce_url = wp_nonce_url('admin.php?page=mbt_settings', 'mbt-style-pack-upload'); $output = mbt_get_wp_filesystem($nonce_url); if(!empty($output)) { return '
'.$output; } global $wp_filesystem; $upload_dir = wp_upload_dir(); if(substr($upload_dir['basedir'], 0, strlen(ABSPATH)) !== ABSPATH) { return '
'.__('Path error while adding style pack!', 'mybooktable').''; } $content_prefix = substr($upload_dir['basedir'], strlen(ABSPATH)); $from = $upload_dir['basedir'].DIRECTORY_SEPARATOR.$file_path; $to = $wp_filesystem->abspath().$content_prefix.DIRECTORY_SEPARATOR.'mbt_styles'.DIRECTORY_SEPARATOR.$style_name; $result = unzip_file($from, $to); if($result === true) { return '
'.__('Successfully added button pack!', 'mybooktable').''; } else { return '
'.__('Error unzipping style pack!', 'mybooktable').''; } } } /*---------------------------------------------------------*/ /* Help Page */ /*---------------------------------------------------------*/ function mbt_render_help_page() { ?>


array( 'link' => 'https://www.authormedia.com/how-to-add-goodreads-book-reviews-to-mybooktable/', 'img' => plugins_url('images/help/goodreads-reviews.jpg', dirname(__FILE__)), 'title' => 'How to Add GoodReads Book Reviews to MyBookTable' ), ); ?>
    $article) { ?>
array( 'video' => 'https://player.vimeo.com/video/66113243', 'title' => 'MyBookTable Overview', 'desc' => 'This video is a general introduction to MyBookTable.' ),*/ 'buy_buttons' => array( 'video' => 'https://player.vimeo.com/video/68790296', 'title' => 'How to Add Buy Buttons', 'desc' => 'This video shows you how to add buy buttons to your books.' ), 'books_in_series' => array( 'video' => 'https://player.vimeo.com/video/66110874', 'title' => 'How to Put Books in a Series', 'desc' => 'This video shows you how to add books into a series.' ), 'amazon_affiliates' => array( 'video' => 'https://player.vimeo.com/video/69188658', 'title' => 'How to Setup an Amazon Affiliate Account With MyBookTable', 'desc' => 'This video walks you through setting up an Amazon Affiliate account and how to take your affiliate code and insert it into your MyBookTable plugin.' ), 'book_blurbs' => array( 'video' => 'https://www.youtube.com/embed/LABESfhThhY', 'title' => 'Effective Book Blurb Strategies', 'desc' => 'This video shows you how to write book blurbs for your books.' ), ); ?>
$tutorial) { ?>
$tutorial) { ?>
array( 'link' => 'https://www.authormedia.com/how-to-harness-the-magic-of-mybooktable-with-shortcodes/', 'img' => plugins_url('images/help/shortcodes.jpg', dirname(__FILE__)), 'title' => 'How to Harness the Magic of MyBookTable with Shortcodes' ), 'draw_readers' => array( 'link' => 'https://www.authormedia.com/10-elements-proven-to-draw-readers-to-your-novels-website/', 'img' => plugins_url('images/help/draw-readers.jpg', dirname(__FILE__)), 'title' => '10 Ways Proven to Draw Readers to Your Novel\'s Website' ), 'upload_file' => array( 'link' => 'https://www.authormedia.com/how-to-upload-a-file-to-your-wordpress-site/', 'img' => plugins_url('images/help/upload-file.jpg', dirname(__FILE__)), 'title' => 'How to Upload a File to Your WordPress Site' ), 'create_pdf' => array( 'link' => 'https://www.authormedia.com/how-to-create-a-pdf/', 'img' => plugins_url('images/help/create-pdf.jpg', dirname(__FILE__)), 'title' => 'How to Create a PDF' ), 'add_hyperlink' => array( 'link' => 'https://www.authormedia.com/how-to-add-a-hyperlink-to-wordpress/', 'img' => plugins_url('images/help/add-link.jpg', dirname(__FILE__)), 'title' => 'How to Add a Hyperlink to WordPress' ), 'hotkeys_cheat_sheet' => array( 'link' => 'https://www.authormedia.com/the-wordpress-hotkey-cheat-sheet-every-author-needs/', 'img' => plugins_url('images/help/hotkeys.jpg', dirname(__FILE__)), 'title' => 'The WordPress Hotkey Cheat Sheet Every Author Needs' ), 'write_posts' => array( 'link' => 'https://www.authormedia.com/how-to-create-or-edit-posts-in-wordpress/', 'img' => plugins_url('images/help/write-posts.jpg', dirname(__FILE__)), 'title' => 'How to Create or Edit Posts in WordPress' ), 'protect_from_hackers' => array( 'link' => 'https://www.authormedia.com/how-to-keep-your-wordpress-site-secure-from-hackers/', 'img' => plugins_url('images/help/hackers.jpg', dirname(__FILE__)), 'title' => 'How to Keep Your WordPress Site Secure From Hackers' ), 'zen_mode' => array( 'link' => 'https://www.authormedia.com/how-to-find-zen-mode-in-wordpress/', 'img' => plugins_url('images/help/zen.jpg', dirname(__FILE__)), 'title' => 'How To Find Zen Mode in WordPress' ), 'book_marketing_ideas' => array( 'link' => 'https://www.authormedia.com/89-book-marketing-ideas-that-will-change-your-life/', 'img' => plugins_url('images/help/ideas.jpg', dirname(__FILE__)), 'title' => '89+ Book Marketing Ideas That Will Change Your Life' ), 'standard_nonfiction' => array( 'link' => 'https://www.authormedia.com/standard-pages-for-a-non-fiction-website/', 'img' => plugins_url('images/help/standard-nonfiction.jpg', dirname(__FILE__)), 'title' => 'Standard Pages for A Non-Fiction Website' ), 'standard_fiction' => array( 'link' => 'https://www.authormedia.com/standard-pages-for-a-fiction-website/', 'img' => plugins_url('images/help/standard-fiction.jpg', dirname(__FILE__)), 'title' => 'Standard Pages for A Fiction Website' ), 'what_readers_want' => array( 'link' => 'https://www.authormedia.com/what-readers-want-from-your-author-website/', 'img' => plugins_url('images/help/what-readers-want.jpg', dirname(__FILE__)), 'title' => '6 Things Readers Want from Your Author Website' ), ); ?>
    $article) { ?>

"MyBookTable Overview", "content" => ''); $videos["mbt-buybuttons"] = array("title" => "MyBookTable Buy Buttons", "content" => ''); $videos["mbt-booksinseries"] = array("title" => "How to Put Books in a Series", "content" => ''); $videos["mbt-amazonaffiliates"] = array("title" => "MyBookTable Amazon Affiliate Accounts", "content" => ''); $videos["mbt-bookblurbs"] = array("title" => "MyBookTable Book Blurbs", "content" => ''); return $videos; } /*---------------------------------------------------------*/ /* Dashboard Page */ /*---------------------------------------------------------*/ function mbt_render_dashboard() { if(!empty($_REQUEST['subpage']) and $_REQUEST['subpage'] === 'mbt_founders_page' && (isset($_REQUEST['nonce_dashboard']) && wp_verify_nonce(sanitize_key($_REQUEST['nonce_dashboard']),'dashboard_nonce'))) { return mbt_render_founders_page(); } if(!empty($_REQUEST['subpage']) and $_REQUEST['subpage'] === 'mbt_get_upgrade_page' && (isset($_REQUEST['nonce_dashboard']) && wp_verify_nonce(sanitize_key($_REQUEST['nonce_dashboard']),'dashboard_nonce'))) { return mbt_render_get_upgrade_page(); } $founderpage_url = wp_nonce_url(admin_url('admin.php?page=mbt_dashboard&subpage=mbt_founders_page'),'dashboard_nonce','nonce_dashboard'); $upgradepage_url = wp_nonce_url(admin_url('admin.php?page=mbt_dashboard&subpage=mbt_get_upgrade_page'),'dashboard_nonce','nonce_dashboard'); $import_url = wp_nonce_url(admin_url('admin.php?page=mbt_import'),'import_nonce','nonce_import'); ?>


'https://www.authormedia.com/', 'url' => 'https://www.authormedia.com/feed/', 'title' => __('Recent News from Author Media', 'mybooktable'), 'items' => 3, 'show_summary' => 1, 'show_author' => 0, 'show_date' => 0, )); ?>

'.esc_attr_e('MyBookTable', 'mybooktable').wp_kses_post(MBT_VERSION).''); ?>

'.esc_attr($dev_upgrade).' '.wp_kses_post(MBTDEV3_VERSION).''); ?>

'.wp_kses_post($pro_upgrade).' '.wp_kses_post(MBTPRO3_VERSION).''); ?>

'.wp_kses_post($dev_upgrade).' '.wp_kses_post(MBTDEV2_VERSION).''); ?>

'.wp_kses_post($pro_upgrade).' '.wp_kses_post(MBTPRO2_VERSION).''); ?>

'.wp_kses_post($dev_upgrade).' '.wp_kses_post(MBTDEV_VERSION).''); ?>

'.wp_kses_post($pro_upgrade).' '.wp_kses_post(MBTPRO_VERSION).''); ?>

$99.00

'.esc_attr_e('Plugin successfully activated.', 'mybooktable').'

'); return true; } return false; } function mbt_get_upgrade_get_plugin_url($slug) { global $wp_version; $api_key = mbt_get_setting('api_key'); if(!empty($api_key)) { $to_send = array( 'action' => 'basic_check', 'version' => 'none', 'api-key' => $api_key, 'site' => get_bloginfo('url') ); $options = array( 'timeout' => 3, 'body' => $to_send, 'user-agent' => 'WordPress/'.$wp_version ); $raw_response = wp_remote_post('https://api.stormhillmedia.com/plugins/'.$slug.'/update-check', $options); if(!is_wp_error($raw_response) and wp_remote_retrieve_response_code($raw_response) == 200) { $response = maybe_unserialize(wp_remote_retrieve_body($raw_response)); if(is_array($response) and !empty($response['package'])) { return $response['package']; } } } return ''; } function mbt_get_upgrade_do_plugin_install($name, $slug, $url) { if(empty(esc_url($url))) { echo('

'.esc_attr_e('An error occurred while trying to retrieve the plugin from the server. Please check your License Key.', 'mybooktable').'

'); return; } if(!current_user_can('install_plugins')) { echo('

'.esc_attr_e('Sorry, but you do not have the correct permissions to install plugins. Contact the administrator of this site for help on getting the plugin installed.', 'mybooktable').'

'); return; } $nonce_url = wp_nonce_url('admin.php?page=mbt_dashboard', 'mbt-install-upgrade'); $output = mbt_get_wp_filesystem($nonce_url); if(!empty($output)) { echo(wp_kses_post($output)); return; } $plugin = array(); $plugin['name'] = $name; $plugin['slug'] = $slug; $plugin['source'] = $url; require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; $args = array( 'type' => 'web', /* translators: %s: plugin name */ 'title' => sprintf(esc_attr_e('Installing Plugin: %s', 'mybooktable'), $plugin['name']), 'nonce' => 'install-plugin_' . $plugin['slug'], 'plugin' => $plugin, ); add_filter('install_plugin_complete_actions', '__return_false', 100); $upgrader = new Plugin_Upgrader(new Plugin_Installer_Skin($args)); $upgrader->install($plugin['source']); wp_cache_flush(); remove_filter('install_plugin_complete_actions', '__return_false', 100); $plugin_info = $upgrader->plugin_info(); $activate = activate_plugin($plugin_info); if(is_wp_error($activate)) { echo('

'.wp_kses_post($activate->get_error_message()).'

'); } } $slug = mbt_get_upgrade(); if(empty($slug) or mbt_get_upgrade_plugin_exists()) { echo('

'.esc_attr_e('You have no Upgrades available to download at this time.', 'mybooktable').'

'); } else { if(!mbt_get_upgrade_check_is_plugin_inactivate($slug)) { $url = mbt_get_upgrade_get_plugin_url($slug); if($slug == 'mybooktable-dev3') { $name = 'MyBookTable Developer Upgrade 3.0'; } if($slug == 'mybooktable-pro3') { $name = 'MyBookTable Professional Upgrade 3.0'; } if($slug == 'mybooktable-dev2') { $name = 'MyBookTable Developer Upgrade 2.0'; } if($slug == 'mybooktable-pro2') { $name = 'MyBookTable Professional Upgrade 2.0'; } if($slug == 'mybooktable-dev') { $name = 'MyBookTable Developer Upgrade'; } if($slug == 'mybooktable-pro') { $name = 'MyBookTable Professional Upgrade'; } mbt_get_upgrade_do_plugin_install($name, $slug, $url); } } ?>

$75+ Backer Level

$100 + Backer Level

$150 + Backer Level

$250+ Backer Level

'Unknown error!'); $importers = mbt_get_importers(); $import_data = get_transient('mbt_import_data'); if(is_array($import_data) and isset($_POST['book']) and !empty($importers[$import_data['import_type']]) && wp_verify_nonce(sanitize_key($importer_nonce),'importer_nonce')) { $importer = $importers[$import_data['import_type']]; $pbook = sanitize_text_field(wp_unslash($_POST['book'])); $book = apply_filters('mbt_pre_import_book', $import_data['book_list'][$pbook], $import_data['import_type']); if(is_array($book)) { $imported_book_id = mbt_import_book($book); $response = array( 'book_link' => get_permalink($imported_book_id), 'title' => $book['title'], ); } else { $response = array('error' => $book); } } echo(wp_json_encode($response)); die(); } function mbt_render_import_page() { $import_nonce = wp_create_nonce('import_nonce','nonce_import'); $importers = mbt_get_importers(); ?>

$import_type, 'book_list' => $book_list), DAY_IN_SECONDS); ?>

'.esc_attr_e('The following books will be imported:', 'mybooktable').''); echo('
    '); foreach($book_list as $book) { echo('
  • '.esc_attr($book['title']).'
  • '); } echo('
'); echo('

'.esc_attr_e('Are you sure you want to import these books?', 'mybooktable').'

'); echo('
'); } else if(is_array($importer['get_book_list'])) { if(!isset($importer['get_book_list']['render_import_form']) or !isset($importer['get_book_list']['parse_import_form'])) { esc_attr_e('Importer error! Unable to render import form.', 'mybooktable'); } else { call_user_func($importer['get_book_list']['render_import_form']); echo('
'); } } else { esc_attr_e('Importer error! Please ensure your MyBookTable Upgrade plugins are updated.', 'mybooktable'); } ?>

Import Books

If you have books in another system, MyBookTable can import those into this site. To get started, choose a system to import from below:

$importer) { echo(''); if(empty($importer['disabled'])) { echo(''); } else { echo(''); } echo(''); echo(''); $alternate = !$alternate; } ?>
'.esc_attr($importer['name']).''.esc_attr($importer['name']).''.wp_kses_post($importer['desc']).((!empty($importer['disabled']) and is_string($importer['disabled'])) ? ' ('.esc_attr($importer['disabled']).')' : '').'