Esempio n. 1
0
 public function mdjm_settings()
 {
     global $mdjm_settings;
     $mdjm_settings = array('main' => get_option('mdjm_plugin_settings'), 'email' => get_option('mdjm_email_settings'), 'templates' => get_option('mdjm_templates_settings'), 'events' => get_option('mdjm_event_settings'), 'playlist' => get_option('mdjm_playlist_settings'), 'custom_text' => get_option('mdjm_frontend_text'), 'clientzone' => get_option('mdjm_clientzone_settings'), 'availability' => get_option('mdjm_availability_settings'), 'pages' => get_option('mdjm_plugin_pages'), 'payments' => get_option('mdjm_payment_settings'), 'permissions' => get_option('mdjm_plugin_permissions'), 'data' => get_option('mdjm_api_data'), 'uninst' => get_option('mdjm_uninst'));
     define('MDJM_DJ', isset($mdjm_settings['events']['artist']) ? $mdjm_settings['events']['artist'] : 'DJ');
     define('MDJM_JOURNAL', !empty($mdjm_settings['events']['journaling']) ? true : false);
     define('MDJM_CREDITS', !empty($mdjm_settings['main']['show_credits']) ? true : false);
     define('MDJM_TRACK_EMAILS', !empty($mdjm_settings['email']['track_client_emails']) ? true : false);
     define('MDJM_MULTI', !empty($mdjm_settings['events']['employer']) ? true : false);
     define('MDJM_PACKAGES', mdjm_packages_enabled());
     define('MDJM_TIME_FORMAT', isset($mdjm_settings['main']['time_format']) ? $mdjm_settings['main']['time_format'] : 'H:i');
     define('MDJM_SHORTDATE_FORMAT', isset($mdjm_settings['main']['short_date_format']) ? $mdjm_settings['main']['short_date_format'] : 'd/m/Y');
     define('MDJM_EVENT_PREFIX', isset($mdjm_settings['events']['event_prefix']) ? $mdjm_settings['events']['event_prefix'] : '');
     define('MDJM_PLAYLIST_ENABLE', !empty($mdjm_settings['playlist']['enable_playlists']) ? true : false);
     define('MDJM_PLAYLIST_CLOSE', isset($mdjm_settings['playlist']['close']) ? $mdjm_settings['playlist']['close'] : '0');
     define('MDJM_PAYMENTS', !empty($mdjm_settings['payments']['payment_gateway']) ? true : false);
     define('MDJM_COMPANY', isset($mdjm_settings['main']['company_name']) ? $mdjm_settings['main']['company_name'] : '');
     define('MDJM_APP', isset($mdjm_settings['clientzone']['app_name']) ? $mdjm_settings['clientzone']['app_name'] : '');
     define('MDJM_HOME', isset($mdjm_settings['pages']['app_home_page']) ? $mdjm_settings['pages']['app_home_page'] : '');
     define('MDJM_CONTACT_PAGE', isset($mdjm_settings['pages']['contact_page']) ? $mdjm_settings['pages']['contact_page'] : '');
     define('MDJM_CONTRACT_PAGE', isset($mdjm_settings['pages']['contracts_page']) ? $mdjm_settings['pages']['contracts_page'] : '');
     define('MDJM_PLAYLIST_PAGE', isset($mdjm_settings['pages']['playlist_page']) ? $mdjm_settings['pages']['playlist_page'] : '');
     define('MDJM_PROFILE_PAGE', isset($mdjm_settings['pages']['profile_page']) ? $mdjm_settings['pages']['profile_page'] : '');
     define('MDJM_PAYMENT_PAGE', isset($mdjm_settings['pages']['payments_page']) ? $mdjm_settings['pages']['payments_page'] : '');
     define('MDJM_QUOTES_PAGE', isset($mdjm_settings['pages']['quotes_page']) ? $mdjm_settings['pages']['quotes_page'] : '');
     define('MDJM_CUSTOM_TEXT', isset($mdjm_settings['custom_text']['custom_client_text']) ? $mdjm_settings['custom_text']['custom_client_text'] : false);
     define('MDJM_ONLINE_QUOTES', !empty($mdjm_settings['templates']['online_enquiry']) ? true : false);
     define('MDJM_NOTIFY_ADMIN', !empty($mdjm_settings['clientzone']['status_notification']) ? true : false);
 }
Esempio n. 2
0
/**
 * Registers and sets up the MDJM Event Management custom post types
 *
 * @since	1.3
 * @return	void
 */
function mdjm_register_post_types()
{
    // Event Post Type
    $event_labels = apply_filters('mdjm_event_labels', array('name' => _x('%2$s', 'post type general name', 'mobile-dj-manager'), 'singular_name' => _x('%1$s', 'post type singular name', 'mobile-dj-manager'), 'menu_name' => _x('MDJM %2$s', 'admin menu', 'mobile-dj-manager'), 'name_admin_bar' => _x('%1$s', 'add new on admin bar', 'mobile-dj-manager'), 'add_new' => __('Create %1$s', 'mobile-dj-manager'), 'add_new_item' => __('Create New %1$s', 'mobile-dj-manager'), 'new_item' => __('New %1$s', 'mobile-dj-manager'), 'edit_item' => __('Edit %1$s', 'mobile-dj-manager'), 'view_item' => __('View %1$s', 'mobile-dj-manager'), 'all_items' => __('All %2$s', 'mobile-dj-manager'), 'search_items' => __('Search %2$s', 'mobile-dj-manager'), 'not_found' => __('No %3$s found.', 'mobile-dj-manager'), 'not_found_in_trash' => __('No %3$s found in Trash.', 'mobile-dj-manager')));
    foreach ($event_labels as $key => $value) {
        $event_labels[$key] = sprintf($value, mdjm_get_label_singular(), mdjm_get_label_plural(), mdjm_get_label_plural(true));
    }
    $event_args = array('labels' => $event_labels, 'description' => __('MDJM Events', 'mobile-dj-manager'), 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => defined('MDJM_MENU_POS') ? MDJM_MENU_POS : 58.4, 'show_in_admin_bar' => true, 'capability_type' => 'mdjm_event', 'capabilities' => apply_filters('mdjm_event_caps', array('publish_posts' => 'publish_mdjm_events', 'edit_posts' => 'edit_mdjm_events', 'edit_others_posts' => 'edit_others_mdjm_events', 'delete_posts' => 'delete_mdjm_events', 'delete_others_posts' => 'delete_others_mdjm_events', 'read_private_posts' => 'read_private_mdjm_events', 'edit_post' => 'edit_mdjm_event', 'delete_post' => 'delete_mdjm_event', 'read_post' => 'read_mdjm_event')), 'map_meta_cap' => true, 'has_archive' => true, 'supports' => apply_filters('mdjm_event_supports', array('title')), 'menu_icon' => plugins_url('mobile-dj-manager/assets/images/mdjm-menu-16x16.jpg'), 'taxonomies' => array('mdjm-event'));
    register_post_type('mdjm-event', apply_filters('mdjm_event_post_type_args', $event_args));
    if (mdjm_packages_enabled()) {
        // Packages Post Type
        $package_labels = apply_filters('mdjm_package_labels', array('name' => _x('Packages', 'post type general name', 'mobile-dj-manager'), 'singular_name' => _x('Package', 'post type singular name', 'mobile-dj-manager'), 'menu_name' => _x('Packages', 'admin menu', 'mobile-dj-manager'), 'name_admin_bar' => _x('Package', 'add new on admin bar', 'mobile-dj-manager'), 'add_new' => __('Add Package', 'mobile-dj-manager'), 'add_new_item' => __('Add New Package', 'mobile-dj-manager'), 'new_item' => __('New Package', 'mobile-dj-manager'), 'edit_item' => __('Edit Package', 'mobile-dj-manager'), 'view_item' => __('View Package', 'mobile-dj-manager'), 'all_items' => __('All Packages', 'mobile-dj-manager'), 'search_items' => __('Search Packages', 'mobile-dj-manager'), 'not_found' => __('No packages found.', 'mobile-dj-manager'), 'not_found_in_trash' => __('No packages found in Trash.', 'mobile-dj-manager')));
        $package_args = array('labels' => $package_labels, 'description' => __('Equipment Packages for the MDJM Event Management plugin', 'mobile-dj-manager'), 'public' => true, 'show_in_menu' => 'edit.php?post_type=mdjm-package', 'has_archive' => true, 'rewrite' => array('slug' => 'packages'), 'supports' => apply_filters('mdjm_package_supports', array('title', 'editor', 'revisions', 'excerpt', 'thumbnail')));
        register_post_type('mdjm-package', apply_filters('mdjm_package_post_type_args', $package_args));
        // Addons Post Type
        $addon_labels = apply_filters('mdjm_addon_labels', array('name' => _x('Addons', 'post type general name', 'mobile-dj-manager'), 'singular_name' => _x('Addon', 'post type singular name', 'mobile-dj-manager'), 'menu_name' => _x('Addons', 'admin menu', 'mobile-dj-manager'), 'name_admin_bar' => _x('Addon', 'add new on admin bar', 'mobile-dj-manager'), 'add_new' => __('Add Addon', 'mobile-dj-manager'), 'add_new_item' => __('Add New Addon', 'mobile-dj-manager'), 'new_item' => __('New Addon', 'mobile-dj-manager'), 'edit_item' => __('Edit Addon', 'mobile-dj-manager'), 'view_item' => __('View Addon', 'mobile-dj-manager'), 'all_items' => __('All Addons', 'mobile-dj-manager'), 'search_items' => __('Search Addons', 'mobile-dj-manager'), 'not_found' => __('No addons found.', 'mobile-dj-manager'), 'not_found_in_trash' => __('No addons found in Trash.', 'mobile-dj-manager')));
        $addon_args = array('labels' => $addon_labels, 'description' => __('Equipment Addons for the MDJM Event Management plugin', 'mobile-dj-manager'), 'public' => true, 'show_in_menu' => 'edit.php?post_type=mdjm-addon', 'has_archive' => true, 'rewrite' => array('slug' => 'addons'), 'supports' => apply_filters('mdjm_addon_supports', array('title', 'editor', 'revisions', 'excerpt', 'thumbnail')));
        register_post_type('mdjm-addon', apply_filters('mdjm_addon_post_type_args', $addon_args));
    }
    // Communication History Post Type
    $email_history_labels = apply_filters('mdjm_email_history_labels', array('name' => _x('Email History', 'post type general name', 'mobile-dj-manager'), 'singular_name' => _x('Email History', 'post type singular name', 'mobile-dj-manager'), 'menu_name' => _x('Email History', 'admin menu', 'mobile-dj-manager'), 'name_admin_bar' => _x('Email History', 'add new on admin bar', 'mobile-dj-manager'), 'add_new' => __('Add Communication', 'mobile-dj-manager'), 'add_new_item' => __('Add New Communication', 'mobile-dj-manager'), 'new_item' => __('New Communication', 'mobile-dj-manager'), 'edit_item' => __('Review Email', 'mobile-dj-manager'), 'view_item' => __('View Email', 'mobile-dj-manager'), 'all_items' => __('All Emails', 'mobile-dj-manager'), 'search_items' => __('Search Emails', 'mobile-dj-manager'), 'not_found' => __('No Emails found.', 'mobile-dj-manager'), 'not_found_in_trash' => __('No Emails found in Trash.', 'mobile-dj-manager')));
    $email_history_args = array('labels' => $email_history_labels, 'description' => __('Communication used by the MDJM Event Management for WordPress plugin', 'mobile-dj-manager'), 'exclude_from_search' => true, 'show_ui' => true, 'show_in_menu' => 'edit.php?post_type=mdjm_communication', 'show_in_admin_bar' => false, 'rewrite' => array('slug' => 'mdjm-communications'), 'capability_type' => 'mdjm_comm', 'capabilities' => apply_filters('mdjm_communications_caps', array('edit_post' => 'edit_mdjm_comm', 'read_post' => 'read_mdjm_comm', 'delete_post' => 'delete_mdjm_comm', 'edit_posts' => 'edit_mdjm_comms', 'edit_others_posts' => 'edit_others_mdjm_comms', 'publish_posts' => 'publish_mdjm_comms', 'read_private_posts' => 'read_private_mdjm_comms')), 'map_meta_cap' => true, 'has_archive' => true, 'supports' => apply_filters('mdjm_email_history_supports', array('title')));
    register_post_type('mdjm_communication', apply_filters('mdjm_email_history_post_type_args', $email_history_args));
    // Contract Post Type
    $contract_labels = apply_filters('mdjm_contract_labels', array('name' => _x('Contract Templates', 'post type general name', 'mobile-dj-manager'), 'singular_name' => _x('Contract Template', 'post type singular name', 'mobile-dj-manager'), 'menu_name' => _x('Contract Templates', 'admin menu', 'mobile-dj-manager'), 'name_admin_bar' => _x('Contract Template', 'add new on admin bar', 'mobile-dj-manager'), 'add_new' => __('Add Contract Template', 'mobile-dj-manager'), 'add_new_item' => __('Add New Contract Template', 'mobile-dj-manager'), 'new_item' => __('New Contract Template', 'mobile-dj-manager'), 'edit_item' => __('Edit Contract Template', 'mobile-dj-manager'), 'view_item' => __('View Contract Template', 'mobile-dj-manager'), 'all_items' => __('All Contract Templates', 'mobile-dj-manager'), 'search_items' => __('Search Contract Templates', 'mobile-dj-manager'), 'not_found' => __('No contract templates found.', 'mobile-dj-manager'), 'not_found_in_trash' => __('No contract templates found in Trash.', 'mobile-dj-manager')));
    $contract_args = array('labels' => $contract_labels, 'description' => __('Contracts used by the MDJM plugin', 'mobile-dj-manager'), 'exclude_from_search' => true, 'show_ui' => true, 'show_in_menu' => 'edit.php?post_type=contract', 'rewrite' => array('slug' => 'contract-templates'), 'capability_type' => array('mdjm_template', 'mdjm_templates'), 'capabilities' => apply_filters('mdjm_contract_caps', array('edit_post' => 'edit_mdjm_template', 'read_post' => 'read_mdjm_template', 'delete_post' => 'delete_mdjm_template', 'edit_posts' => 'edit_mdjm_templates', 'edit_others_posts' => 'edit_others_mdjm_templates', 'publish_posts' => 'publish_mdjm_templates', 'read_private_posts' => 'read_private_mdjm_templates')), 'map_meta_cap' => true, 'has_archive' => true, 'supports' => apply_filters('mdjm_contract_supports', array('title', 'editor', 'revisions')));
    register_post_type('contract', apply_filters('mdjm_contract_post_type_args', $contract_args));
    // Signed Contract Post Type
    $signed_contract_labels = apply_filters('mdjm_signed_contract_labels', array('name' => _x('Signed Contracts', 'post type general name', 'mobile-dj-manager'), 'singular_name' => _x('Signed Contract', 'post type singular name', 'mobile-dj-manager'), 'menu_name' => _x('Signed Contracts', 'admin menu', 'mobile-dj-manager'), 'name_admin_bar' => _x('Signed Contract', 'add new on admin bar', 'mobile-dj-manager'), 'add_new' => __('Add Signed Contract', 'mobile-dj-manager'), 'add_new_item' => __('Add New Signed Contract', 'mobile-dj-manager'), 'new_item' => __('New Signed Contract', 'mobile-dj-manager'), 'edit_item' => __('Edit Signed Contract', 'mobile-dj-manager'), 'view_item' => __('View Signed Contract', 'mobile-dj-manager'), 'all_items' => __('All Signed Contracts', 'mobile-dj-manager'), 'search_items' => __('Search Signed Contracts', 'mobile-dj-manager'), 'not_found' => __('No signed contracts found.', 'mobile-dj-manager'), 'not_found_in_trash' => __('No signed contracts found in Trash.', 'mobile-dj-manager')));
    $signed_contract_args = array('labels' => $signed_contract_labels, 'description' => __('Signed Contracts used by the MDJM plugin', 'mobile-dj-manager'), 'rewrite' => array('slug' => 'mdjm-signed-contract'), 'capability_type' => array('mdjm_signed_contract', 'mdjm_signed_contracts'), 'map_meta_cap' => true, 'has_archive' => true, 'supports' => array(''));
    register_post_type('mdjm-signed-contract', apply_filters('mdjm_signed_contract_post_type_args', $signed_contract_args));
    // Custom Field Post Type
    $custom_field_labels = apply_filters('mdjm_custom_field_contract_labels', array('name' => _x('Custom Event Fields', 'post type general name', 'mobile-dj-manager'), 'singular_name' => _x('Custom Event Field', 'post type singular name', 'mobile-dj-manager'), 'menu_name' => _x('Custom Event Fields', 'admin menu', 'mobile-dj-manager'), 'add_new' => _x('Add Custom Event Field', 'add new on admin bar', 'mobile-dj-manager'), 'add_new_item' => __('Add New Custom Event Field'), 'edit' => __('Edit Custom Event Field'), 'edit_item' => __('Edit Custom Event Field'), 'new_item' => __('New Hosted Plugin'), 'view' => __('View Custom Event Field'), 'view_item' => __('View Custom Event Field'), 'search_items' => __('Search Custom Event Field'), 'not_found' => __('No Custom Event Fields found'), 'not_found_in_trash' => __('No Custom Event Fields found in trash')));
    $custom_field_args = array('labels' => $custom_field_labels, 'description' => __('This is where you can add Custom Event Fields for use in the event screen.', 'mobile-dj-manager'), 'rewrite' => array('slug' => 'mdjm-custom-fields'), 'supports' => array('title'));
    register_post_type('mdjm-custom-field', apply_filters('mdjm_custom_field_post_type_args', $custom_field_args));
    // Email Template Post Type
    $email_template_labels = apply_filters('mdjm_email_template_labels', array('name' => _x('Email Templates', 'post type general name', 'mobile-dj-manager'), 'singular_name' => _x('Email Template', 'post type singular name', 'mobile-dj-manager'), 'menu_name' => _x('Email Templates', 'admin menu', 'mobile-dj-manager'), 'name_admin_bar' => _x('Email Template', 'add new on admin bar', 'mobile-dj-manager'), 'add_new' => __('Add Template', 'mobile-dj-manager'), 'add_new_item' => __('Add New Template', 'mobile-dj-manager'), 'new_item' => __('New Template', 'mobile-dj-manager'), 'edit_item' => __('Edit Template', 'mobile-dj-manager'), 'view_item' => __('View Template', 'mobile-dj-manager'), 'all_items' => __('All Templates', 'mobile-dj-manager'), 'search_items' => __('Search Templates', 'mobile-dj-manager'), 'not_found' => __('No templates found.', 'mobile-dj-manager'), 'not_found_in_trash' => __('No templates found in Trash.', 'mobile-dj-manager')));
    $email_template_args = array('labels' => $email_template_labels, 'description' => __('Email Templates for the MDJM Event Management plugin', 'mobile-dj-manager'), 'show_ui' => true, 'show_in_menu' => 'edit.php?post_type=email_template', 'show_in_admin_bar' => true, 'rewrite' => array('slug' => 'email-template'), 'capability_type' => 'mdjm_template', 'capabilities' => apply_filters('mdjm_email_template_caps', array('publish_posts' => 'publish_mdjm_templates', 'edit_posts' => 'edit_mdjm_templates', 'edit_others_posts' => 'edit_others_mdjm_templates', 'delete_posts' => 'delete_mdjm_templates', 'delete_others_posts' => 'delete_others_mdjm_templates', 'read_private_posts' => 'read_private_mdjm_templates', 'edit_post' => 'edit_mdjm_template', 'delete_post' => 'delete_mdjm_template', 'read_post' => 'read_mdjm_template')), 'map_meta_cap' => true, 'has_archive' => true, 'supports' => apply_filters('mdjm_email_template_supports', array('title', 'editor', 'revisions')));
    register_post_type('email_template', apply_filters('mdjm_email_template_post_type_args', $email_template_args));
    // Playlist Post Type
    $playlist_labels = apply_filters('mdjm_playlist_labels', array('name' => _x('Playlist Entries', 'post type general name', 'mobile-dj-manager'), 'singular_name' => _x('Playlist Entry', 'post type singular name', 'mobile-dj-manager'), 'menu_name' => _x('Playlist Entries', 'admin menu', 'mobile-dj-manager'), 'name_admin_bar' => _x('Playlist Entry', 'add new on admin bar', 'mobile-dj-manager'), 'add_new' => __('Add Playlist Entry', 'mobile-dj-manager'), 'add_new_item' => __('Add New Playlist Entry', 'mobile-dj-manager'), 'new_item' => __('New Entry', 'mobile-dj-manager'), 'edit_item' => __('Edit Entry', 'mobile-dj-manager'), 'view_item' => __('View Entry', 'mobile-dj-manager'), 'all_items' => __('All Entries', 'mobile-dj-manager'), 'search_items' => __('Search Entries', 'mobile-dj-manager'), 'not_found' => __('No entries found.', 'mobile-dj-manager'), 'not_found_in_trash' => __('No entries found in Trash.', 'mobile-dj-manager')));
    $playlist_args = array('labels' => $playlist_labels, 'description' => __('MDJM Event Management Playlist Entries', 'mobile-dj-manager'), 'show_ui' => true, 'show_in_menu' => false, 'capability_type' => 'mdjm_playlist', 'capabilities' => apply_filters('mdjm_playlist_caps', array('edit_post' => 'edit_mdjm_playlist', 'read_post' => 'read_mdjm_playlist', 'delete_post' => 'delete_mdjm_playlist', 'edit_posts' => 'edit_mdjm_playlists', 'edit_others_posts' => 'edit_others_mdjm_playlists', 'publish_posts' => 'publish_mdjm_playlists', 'read_private_posts' => 'read_private_mdjm_playlists')), 'map_meta_cap' => true, 'supports' => apply_filters('mdjm_playlist_supports', array('title')), 'taxonomies' => array('mdjm-playlist'));
    register_post_type('mdjm-playlist', apply_filters('mdjm_playlist_post_type_args', $playlist_args));
    // Quote Post Type
    $quote_labels = apply_filters('mdjm_quote_labels', array('name' => _x('Quotes', 'post type general name', 'mobile-dj-manager'), 'singular_name' => _x('Quote', 'post type singular name', 'mobile-dj-manager'), 'menu_name' => _x('Quotes', 'admin menu', 'mobile-dj-manager'), 'name_admin_bar' => _x('Quote', 'add new on admin bar', 'mobile-dj-manager'), 'add_new' => __('Create Quote', 'mobile-dj-manager'), 'add_new_item' => __('Create New Quote', 'mobile-dj-manager'), 'new_item' => __('New Quote', 'mobile-dj-manager'), 'edit_item' => __('Edit Quote', 'mobile-dj-manager'), 'view_item' => __('View Quote', 'mobile-dj-manager'), 'all_items' => __('All Quotes', 'mobile-dj-manager'), 'search_items' => __('Search Quotes', 'mobile-dj-manager'), 'not_found' => __('No quotes found.', 'mobile-dj-manager'), 'not_found_in_trash' => __('No quotes found in Trash.', 'mobile-dj-manager')));
    $quote_args = array('labels' => $quote_labels, 'description' => __('MDJM Event Management Quotes', 'mobile-dj-manager'), 'show_ui' => true, 'show_in_menu' => 'edit.php?post_type=mdjm-quotes', 'show_in_admin_bar' => false, 'rewrite' => array('slug' => 'mdjm-quotes'), 'capability_type' => 'mdjm_quote', 'capabilities' => apply_filters('mdjm_quote_caps', array('edit_post' => 'edit_mdjm_quote', 'read_post' => 'read_mdjm_quote', 'delete_post' => 'delete_mdjm_quote', 'edit_posts' => 'edit_mdjm_quotes', 'edit_others_posts' => 'edit_others_mdjm_quotes', 'publish_posts' => 'publish_mdjm_quotes', 'read_private_posts' => 'read_private_mdjm_quotes')), 'map_meta_cap' => true, 'has_archive' => true, 'supports' => apply_filters('mdjm_quote_supports', array('title')));
    register_post_type('mdjm-quotes', apply_filters('mdjm_quotes_post_type_args', $quote_args));
    // Transaction Post Type
    $txn_labels = apply_filters('mdjm_txn_labels', array('name' => _x('Transactions', 'post type general name', 'mobile-dj-manager'), 'singular_name' => _x('Transaction', 'post type singular name', 'mobile-dj-manager'), 'menu_name' => _x('Transactions', 'admin menu', 'mobile-dj-manager'), 'name_admin_bar' => _x('Transaction', 'add new on admin bar', 'mobile-dj-manager'), 'add_new' => __('Add Transaction', 'mobile-dj-manager'), 'add_new_item' => __('Add New Transaction', 'mobile-dj-manager'), 'new_item' => __('New Transaction', 'mobile-dj-manager'), 'edit_item' => __('Edit Transaction', 'mobile-dj-manager'), 'view_item' => __('View Transaction', 'mobile-dj-manager'), 'all_items' => __('All Transactions', 'mobile-dj-manager'), 'search_items' => __('Search Transactions', 'mobile-dj-manager'), 'not_found' => __('No Transactions found.', 'mobile-dj-manager'), 'not_found_in_trash' => __('No Transactions found in Trash.')));
    $txn_args = array('labels' => $txn_labels, 'description' => __('Transactions for the MDJM Event Management plugin', 'mobile-dj-manager'), 'show_ui' => true, 'show_in_menu' => 'edit.php?post_type=mdjm-transaction', 'show_in_admin_bar' => true, 'rewrite' => array('slug' => 'mdjm-transaction'), 'capability_type' => 'mdjm_txn', 'capabilities' => apply_filters('mdjm_transaction_caps', array('edit_post' => 'edit_mdjm_txn', 'read_post' => 'read_mdjm_txn', 'delete_post' => 'delete_mdjm_txn', 'edit_posts' => 'edit_mdjm_txns', 'edit_others_posts' => 'edit_others_mdjm_txns', 'publish_posts' => 'publish_mdjm_txns', 'read_private_posts' => 'read_private_mdjm_txns')), 'map_meta_cap' => true, 'has_archive' => true, 'supports' => apply_filters('mdjm_transaction_supports', array('title')), 'taxonomies' => array('mdjm-transaction'));
    register_post_type('mdjm-transaction', apply_filters('mdjm_transaction_post_type_args', $txn_args));
    // Venue Post Type
    $venue_labels = apply_filters('mdjm_txn_labels', array('name' => _x('Venues', 'post type general name', 'mobile-dj-manager'), 'singular_name' => _x('Venue', 'post type singular name', 'mobile-dj-manager'), 'menu_name' => _x('Venues', 'admin menu', 'mobile-dj-manager'), 'name_admin_bar' => _x('Venue', 'add new on admin bar', 'mobile-dj-manager'), 'add_new' => __('Add Venue', 'mobile-dj-manager'), 'add_new_item' => __('Add New Venue', 'mobile-dj-manager'), 'new_item' => __('New Venue', 'mobile-dj-manager'), 'edit_item' => __('Edit Venue', 'mobile-dj-manager'), 'view_item' => __('View Venue', 'mobile-dj-manager'), 'all_items' => __('All Venues', 'mobile-dj-manager'), 'search_items' => __('Search Venues', 'mobile-dj-manager'), 'not_found' => __('No Venues found.', 'mobile-dj-manager'), 'not_found_in_trash' => __('No Venues found in Trash.', 'mobile-dj-manager')));
    $venue_args = array('labels' => $venue_labels, 'description' => __('Venues stored for the MDJM Event Management plugin', 'mobile-dj-manager'), 'show_ui' => true, 'show_in_menu' => 'edit.php?post_type=mdjm-venue', 'show_in_admin_bar' => true, 'rewrite' => array('slug' => 'mdjm-venue'), 'capability_type' => 'mdjm_venue', 'capabilities' => apply_filters('mdjm_venue_caps', array('edit_post' => 'edit_mdjm_venue', 'read_post' => 'read_mdjm_venue', 'delete_post' => 'delete_mdjm_venue', 'edit_posts' => 'edit_mdjm_venues', 'edit_others_posts' => 'edit_others_mdjm_venues', 'publish_posts' => 'publish_mdjm_venues', 'read_private_posts' => 'read_private_mdjm_venues')), 'map_meta_cap' => true, 'has_archive' => true, 'supports' => apply_filters('mdjm_venue_supports', array('title')), 'taxonomies' => array('mdjm-venue'));
    register_post_type('mdjm-venue', apply_filters('mdjm_venue_post_type_args', $venue_args));
}
/**
 * Default Report Views
 *
 * @since	1.4
 * @return	arr		$views	Report Views
 */
function mdjm_reports_default_views()
{
    $event_label_single = mdjm_get_label_singular();
    $event_label_plural = mdjm_get_label_plural();
    $views = array('earnings' => __('Earnings', 'mobile-dj-manager'), 'transactions' => __('Transactions', 'mobile-dj-manager'), 'txn-types' => __('Transactions by Type', 'mobile-dj-manager'), 'conversions' => __('Enquiries by Source', 'mobile-dj-manager'), 'employees' => sprintf(__('%s by Employee', 'mobile-dj-manager'), $event_label_plural), 'types' => sprintf(__('%s by Type', 'mobile-dj-manager'), $event_label_plural), 'packages' => sprintf(__('%s by Package', 'mobile-dj-manager'), $event_label_plural), 'addons' => sprintf(__('%s by Addon', 'mobile-dj-manager'), $event_label_plural));
    if (!mdjm_is_employer()) {
        unset($views['employees']);
    }
    if (!mdjm_packages_enabled()) {
        unset($views['packages']);
        unset($views['addons']);
    }
    $views = apply_filters('mdjm_report_views', $views);
    return $views;
}
Esempio n. 4
0
function mdjm_admin_toolbar($admin_bar)
{
    if (!current_user_can('mdjm_employee')) {
        return;
    }
    // Build out the toolbar menu structure
    $admin_bar->add_menu(array('id' => 'mdjm', 'title' => sprintf(__('MDJM %s', 'mobile-dj-manager'), mdjm_get_label_plural()), 'href' => mdjm_employee_can('read_events') ? admin_url('edit.php?post_type=mdjm-event') : '#', 'meta' => array('title' => __('MDJM Event Management', 'mobile-dj-manager'))));
    if (mdjm_employee_can('read_events')) {
        // Events
        $admin_bar->add_menu(array('id' => 'mdjm-events', 'parent' => 'mdjm', 'title' => mdjm_get_label_plural(), 'href' => admin_url('edit.php?post_type=mdjm-event'), 'meta' => array('title' => sprintf(__('MDJM %s', 'mobile-dj-manager'), mdjm_get_label_plural()))));
    }
    if (mdjm_employee_can('manage_all_events')) {
        $admin_bar->add_menu(array('id' => 'mdjm-add-events', 'parent' => 'mdjm-events', 'title' => sprintf(__('Create %s', 'mobile-dj-manager'), mdjm_get_label_singular()), 'href' => admin_url('post-new.php?post_type=mdjm-event'), 'meta' => array('title' => sprintf(__('Create New %s', 'mobile-dj-manager'), mdjm_get_label_singular()))));
        // Enquiries
        $event_status = array('mdjm-unattended' => __('Unattended Enquiries', 'mobile-dj-manager'), 'mdjm-enquiry' => __('View Enquiries', 'mobile-dj-manager'));
        foreach ($event_status as $current_status => $display) {
            $status_count = MDJM()->events->mdjm_count_event_status($current_status);
            if (!$status_count) {
                continue;
            }
            $admin_bar->add_menu(array('id' => 'mdjm-' . str_replace(' ', '-', strtolower($display)), 'parent' => 'mdjm-events', 'title' => $display . ' (' . $status_count . ')', 'href' => admin_url('edit.php?post_status=' . $current_status . '&post_type=mdjm-event'), 'meta' => array('title' => $display)));
        }
        // Event Types
        $admin_bar->add_menu(array('id' => 'mdjm-event-types', 'parent' => 'mdjm-events', 'title' => sprintf(__('%s Types', 'mobile-dj-manager'), mdjm_get_label_singular()), 'href' => admin_url('edit-tags.php?taxonomy=event-types&post_type=mdjm-event'), 'meta' => array('title' => sprintf(__('Manage %s Types', 'mobile-dj-manager'), mdjm_get_label_singular()))));
        // Playlist Categories
        $admin_bar->add_menu(array('id' => 'mdjm-playlist-cats', 'parent' => 'mdjm-events', 'title' => __('Playlist Categories', 'mobile-dj-manager'), 'href' => admin_url('edit-tags.php?taxonomy=playlist-category&post_type=mdjm-playlist'), 'meta' => array('title' => __('Manage Playlist Categories', 'mobile-dj-manager'))));
        // Enquiry Sources
        $admin_bar->add_menu(array('id' => 'mdjm-enquiry-sources', 'parent' => 'mdjm-events', 'title' => __('Enquiry Sources', 'mobile-dj-manager'), 'href' => admin_url('edit-tags.php?taxonomy=enquiry-source&post_type=mdjm-event'), 'meta' => array('title' => __('Manage Enquiry Sources', 'mobile-dj-manager'))));
    }
    // Dashboard
    /*$admin_bar->add_menu( array(
    		'id'		=> 'mdjm-dashboard',
    		'parent'	=> 'mdjm',
    		'title'	 => __( 'Dashboard', 'mobile-dj-manager' ),
    		'href'	  => admin_url( 'admin.php?page=mdjm-dashboard' ),
    		'meta'	  => array(
    			'title' => __( 'MDJM Dashboard', 'mobile-dj-manager' ),
    		),
    	) ); */
    // Settings
    if (mdjm_is_admin()) {
        $admin_bar->add_menu(array('id' => 'mdjm-settings', 'parent' => 'mdjm', 'title' => __('Settings', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-settings'), 'meta' => array('title' => __('MDJM Settings', 'mobile-dj-manager'))));
        $admin_bar->add_menu(array('id' => 'mdjm-settings-general', 'parent' => 'mdjm-settings', 'title' => __('General', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-settings&tab=general'), 'meta' => array('title' => __('MDJM General Settings', 'mobile-dj-manager'))));
        $admin_bar->add_menu(array('id' => 'mdjm-settings-events', 'parent' => 'mdjm-settings', 'title' => mdjm_get_label_plural(), 'href' => admin_url('admin.php?page=mdjm-settings&tab=events'), 'meta' => array('title' => __('MDJM Event Settings', 'mobile-dj-manager'))));
        $admin_bar->add_menu(array('id' => 'mdjm-settings-permissions', 'parent' => 'mdjm-settings', 'title' => __('Permissions', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-settings&tab=general&section=mdjm_app_permissions'), 'meta' => array('title' => __('MDJM Permission Settings', 'mobile-dj-manager'))));
        $admin_bar->add_menu(array('id' => 'mdjm-settings-emails', 'parent' => 'mdjm-settings', 'title' => sprintf(__('Email %s Template Settings', 'mobile-dj-manager'), '&'), 'href' => admin_url('admin.php?page=mdjm-settings&tab=emails'), 'meta' => array('title' => sprintf(__('MDJM Email %s Template Settings', 'mobile-dj-manager'), '&'))));
        $admin_bar->add_menu(array('id' => 'mdjm-settings-client-zone', 'parent' => 'mdjm-settings', 'title' => sprintf(__('%s Settings', 'mobile-dj-manager'), mdjm_get_option('app_name', __('Client Zone', 'mobile-dj-manager'))), 'href' => admin_url('admin.php?page=mdjm-settings&tab=client_zone'), 'meta' => array('title' => sprintf(__('%s Settings', 'mobile-dj-manager'), mdjm_get_option('app_name', __('Client Zone', 'mobile-dj-manager'))))));
        $admin_bar->add_menu(array('id' => 'mdjm-settings-payments', 'parent' => 'mdjm-settings', 'title' => __('Payment Settings', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-settings&tab=payments'), 'meta' => array('title' => __('MDJM Payment Settings', 'mobile-dj-manager'))));
    }
    do_action('mdjm_admin_bar_settings_items', $admin_bar);
    if (mdjm_is_employer() && mdjm_employee_can('manage_employees')) {
        // Employees
        $admin_bar->add_menu(array('id' => 'mdjm-employees', 'parent' => 'mdjm', 'title' => __('Employees', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-employees'), 'meta' => array('title' => __('Employees', 'mobile-dj-manager'))));
    }
    if (mdjm_is_admin()) {
        // Employee Availability
        $admin_bar->add_menu(array('id' => 'mdjm-availability', 'parent' => mdjm_is_employer() ? 'mdjm-employees' : 'mdjm', 'title' => __('Employee Availability', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-availability'), 'meta' => array('title' => __('Employee Availability', 'mobile-dj-manager'))));
        // Automated Tasks
        $admin_bar->add_menu(array('id' => 'mdjm-tasks', 'parent' => 'mdjm', 'title' => __('Automated Tasks', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-tasks'), 'meta' => array('title' => __('Automated Tasks', 'mobile-dj-manager'))));
    }
    if (mdjm_employee_can('view_clients_list')) {
        // Clients
        $admin_bar->add_menu(array('id' => 'mdjm-clients', 'parent' => 'mdjm', 'title' => __('Clients', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-clients'), 'meta' => array('title' => __('Clients', 'mobile-dj-manager'))));
    }
    if (mdjm_employee_can('list_all_clients')) {
        $admin_bar->add_menu(array('id' => 'mdjm-add-client', 'parent' => 'mdjm-clients', 'title' => __('Add Client', 'mobile-dj-manager'), 'href' => admin_url('user-new.php'), 'meta' => array('title' => __('Add New Client', 'mobile-dj-manager'))));
        $admin_bar->add_menu(array('id' => 'mdjm-custom-client-fields', 'parent' => 'mdjm-clients', 'title' => __('Custom Client Fields', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-custom-client-fields'), 'meta' => array('title' => __('Custom Client Field', 'mobile-dj-manager'))));
    }
    // Communications
    if (mdjm_employee_can('send_comms')) {
        $admin_bar->add_menu(array('id' => 'mdjm-comms', 'parent' => 'mdjm', 'title' => __('Communications', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-comms'), 'meta' => array('title' => __('Communications', 'mobile-dj-manager'))));
        $admin_bar->add_menu(array('id' => 'edit.php?post_type=mdjm_communication', 'parent' => 'mdjm-comms', 'title' => __('Communication History', 'mobile-dj-manager'), 'href' => admin_url('edit.php?post_type=mdjm_communication'), 'meta' => array('title' => __('Communication History', 'mobile-dj-manager'))));
    }
    // Filter for MDJM DCF Admin Bar Items
    do_action('mdjm_dcf_admin_bar_items', $admin_bar);
    if (mdjm_employee_can('manage_templates')) {
        // Contract Templates
        $admin_bar->add_menu(array('id' => 'mdjm-contracts', 'parent' => 'mdjm', 'title' => __('Contract Templates', 'mobile-dj-manager'), 'href' => admin_url('edit.php?post_type=contract'), 'meta' => array('title' => __('Contract Templates', 'mobile-dj-manager'))));
        $admin_bar->add_menu(array('id' => 'mdjm-new-contract', 'parent' => 'mdjm-contracts', 'title' => __('Add Contract Template', 'mobile-dj-manager'), 'href' => admin_url('post-new.php?post_type=contract'), 'meta' => array('title' => __('New Contract Template', 'mobile-dj-manager'))));
    }
    if (mdjm_employee_can('manage_templates')) {
        // Email Templates
        $admin_bar->add_menu(array('id' => 'mdjm-email-templates', 'parent' => 'mdjm', 'title' => __('Email Templates', 'mobile-dj-manager'), 'href' => admin_url('edit.php?post_type=email_template'), 'meta' => array('title' => __('Email Templates', 'mobile-dj-manager'))));
        $admin_bar->add_menu(array('id' => 'mdjm-new-email-template', 'parent' => 'mdjm-email-templates', 'title' => __('Add Template', 'mobile-dj-manager'), 'href' => admin_url('post-new.php?post_type=email_template'), 'meta' => array('title' => __('New Email Template', 'mobile-dj-manager'))));
    }
    // Equipment Packages & Add-ons
    if (mdjm_packages_enabled() && mdjm_employee_can('manage_packages')) {
        $admin_bar->add_menu(array('id' => 'mdjm-packages', 'parent' => 'mdjm', 'title' => __('Packages', 'mobile-dj-manager'), 'href' => admin_url('edit.php?post_type=mdjm-package'), 'meta' => array('title' => __('Packages', 'mobile-dj-manager'))));
        $admin_bar->add_menu(array('id' => 'mdjm-package-cats', 'parent' => 'mdjm-packages', 'title' => __('Package Categories', 'mobile-dj-manager'), 'href' => admin_url('edit-tags.php?taxonomy=package-category&post_type=mdjm-package'), 'meta' => array('title' => __('Package Categories', 'mobile-dj-manager'))));
        $admin_bar->add_menu(array('id' => 'mdjm-addons', 'parent' => 'mdjm-packages', 'title' => __('Add-ons', 'mobile-dj-manager'), 'href' => admin_url('edit.php?post_type=mdjm-addon'), 'meta' => array('title' => __('Add-ons', 'mobile-dj-manager'))));
        $admin_bar->add_menu(array('id' => 'mdjm-addon-cats', 'parent' => 'mdjm-packages', 'title' => __('Addon Categories', 'mobile-dj-manager'), 'href' => admin_url('edit-tags.php?taxonomy=addon-category&post_type=mdjm-addon'), 'meta' => array('title' => __('Addon Categories', 'mobile-dj-manager'))));
    }
    // Custom Event Fields
    if (mdjm_is_admin()) {
        $admin_bar->add_menu(array('id' => 'mdjm-event-fields', 'parent' => 'mdjm-events', 'title' => sprintf(__('Custom %s Fields', 'mobile-dj-manager'), mdjm_get_label_singular()), 'href' => admin_url('admin.php?page=mdjm-custom-event-fields'), 'meta' => array('title' => sprintf(__('Manage Custom %s Fields', 'mobile-dj-manager'), mdjm_get_label_singular()))));
    }
    // Event Quotes
    if (mdjm_get_option('online_enquiry', false) && mdjm_employee_can('list_own_quotes')) {
        $admin_bar->add_menu(array('id' => 'mdjm-event-quotes', 'parent' => 'mdjm-events', 'title' => sprintf(__('%s Quotes', 'mobile-dj-manager'), mdjm_get_label_singular()), 'href' => admin_url('edit.php?post_type=mdjm-quotes'), 'meta' => array('title' => sprintf(__('View %s Quotes', 'mobile-dj-manager'), mdjm_get_label_singular()))));
    }
    // Reporting
    /*if( current_user_can( 'manage_options' ) )	{
    		$admin_bar->add_menu( array(
    			'id'     => 'mdjm-reports',
    			'parent' => 'mdjm',
    			'title'  => __( 'Reports', 'mobile-dj-manager' ),
    			'href'   => admin_url( 'admin.php?page=mdjm-reports' ),
    			'meta'   => array(
    				'title' => __( 'MDJM Reports', 'mobile-dj-manager' ),
    			),
    		) );	
    	}*/
    if (mdjm_employee_can('edit_txns')) {
        // Transactions
        $admin_bar->add_menu(array('id' => 'mdjm-transactions', 'parent' => 'mdjm', 'title' => __('Transactions', 'mobile-dj-manager'), 'href' => 'edit.php?post_type=mdjm-transaction', 'meta' => array('title' => __('MDJM Transactions', 'mobile-dj-manager'))));
        $admin_bar->add_menu(array('id' => 'mdjm-add-transaction', 'parent' => 'mdjm-transactions', 'title' => __('Add Transaction', 'mobile-dj-manager'), 'href' => admin_url('post-new.php?post_type=mdjm-transaction'), 'meta' => array('title' => __('Add Transaction', 'mobile-dj-manager'))));
        // Transaction Types
        $admin_bar->add_menu(array('id' => 'mdjm-transaction-types', 'parent' => 'mdjm-transactions', 'title' => __('Transaction Types', 'mobile-dj-manager'), 'href' => admin_url('edit-tags.php?taxonomy=transaction-types&post_type=mdjm-transaction'), 'meta' => array('title' => __('View / Edit Transaction Types', 'mobile-dj-manager'))));
    }
    if (mdjm_employee_can('list_venues')) {
        // Venues
        $admin_bar->add_menu(array('id' => 'mdjm-venues', 'parent' => 'mdjm', 'title' => __('Venues', 'mobile-dj-manager'), 'href' => admin_url('edit.php?post_type=mdjm-venue'), 'meta' => array('title' => __('Venues', 'mobile-dj-manager'))));
        if (mdjm_employee_can('add_venues')) {
            $admin_bar->add_menu(array('id' => 'mdjm-add-venue', 'parent' => 'mdjm-venues', 'title' => __('Add Venue', 'mobile-dj-manager'), 'href' => admin_url('post-new.php?post_type=mdjm-venue'), 'meta' => array('title' => __('Add New Venue', 'mobile-dj-manager'))));
            $admin_bar->add_menu(array('id' => 'mdjm-venue-details', 'parent' => 'mdjm-venues', 'title' => __('Venue Details', 'mobile-dj-manager'), 'href' => admin_url('edit-tags.php?taxonomy=venue-details&post_type=mdjm-venue'), 'meta' => array('title' => __('View / Edit Venue Details', 'mobile-dj-manager'))));
        }
    }
    // MDJM Links
    $admin_bar->add_menu(array('id' => 'mdjm-user-guides', 'parent' => 'mdjm', 'title' => sprintf(__('%sDocumentation%s', 'mobile-dj-manager'), '<span style="color:#F90">', '</span>'), 'href' => 'http://mdjm.co.uk/support/', 'meta' => array('title' => __('Documentation', 'mobile-dj-manager'), 'target' => '_blank')));
    $admin_bar->add_menu(array('id' => 'mdjm-support', 'parent' => 'mdjm', 'title' => sprintf(__('%sSupport%s', 'mobile-dj-manager'), '<span style="color:#F90">', '</span>'), 'href' => 'http://www.mydjplanner.co.uk/forums/', 'meta' => array('title' => __('MDJM Support Forums', 'mobile-dj-manager'), 'target' => '_blank')));
}
Esempio n. 5
0
/**
 * Output the event packages row
 *
 * @since	1.3.7
 * @global	obj		$mdjm_event			MDJM_Event class object
 * @global	bool	$mdjm_event_update	True if this event is being updated, false if new.
 * @param	int		$event_id			The event ID.
 * @return	str
 */
function mdjm_event_metabox_details_packages_row($event_id)
{
    global $mdjm_event, $mdjm_event_update;
    if (!mdjm_packages_enabled()) {
        return;
    }
    $package = $mdjm_event->get_package();
    $addons = $mdjm_event->get_addons();
    $employee = $mdjm_event->employee_id ? $mdjm_event->employee_id : get_current_user_id();
    $event_type = mdjm_get_event_type($event_id, true);
    $event_date = $mdjm_event->date ? $mdjm_event->date : false;
    if (!$event_type) {
        $event_type = mdjm_get_option('event_type_default', '');
    }
    ?>
    <span id="mdjm-equipment-loader" class="mdjm-loader mdjm-hidden"><img src="<?php 
    echo MDJM_PLUGIN_URL . '/assets/images/loading.gif';
    ?>
" /></span>
    <div id="mdjm-event-equipment-row" class="mdjm_field_wrap mdjm_form_fields">
        <div class="mdjm_col col2">
            <label for="_mdjm_event_package"><?php 
    _e('Package:', 'mobile-dj-manager');
    ?>
</label><br />
			<?php 
    echo MDJM()->html->packages_dropdown(array('employee' => $employee, 'event_type' => $event_type, 'event_date' => $event_date, 'selected' => $package, 'chosen' => true));
    ?>
		</div>

		<div class="mdjm_col col2">
            <span><label for="event_addons"><?php 
    _e('Add-ons:', 'mobile-dj-manager');
    ?>
</label><br />
            <?php 
    echo MDJM()->html->addons_dropdown(array('selected' => $addons, 'show_option_none' => false, 'show_option_all' => false, 'employee' => $employee, 'event_type' => $event_type, 'event_date' => $event_date, 'package' => $package, 'cost' => true, 'placeholder' => __('Select Add-ons', 'mobile-dj-manager'), 'chosen' => true, 'data' => array()));
    ?>
</span>
		</div>
    </div>

    <?php 
}
/**
 * List all available addons. If an employee ID is provided, list what that 
 * employee can provide only.
 *
 * @since	1.4
 * @param	int		$employee_id	An employee user ID, otherwise query current user.
 * @param	bool	$price			True to display the formatted package price
 * @return	str		HTML formatted string listing package information
 */
function mdjm_list_available_addons($employee_id = 0, $price = false)
{
    if (!mdjm_packages_enabled()) {
        return __('No addons available', 'mobile-dj-manager');
    }
    if (!empty($employee_id)) {
        $addons = mdjm_get_addons_by_employee($employee_id, false);
    } else {
        $addons = mdjm_get_addons();
    }
    if (!$addons) {
        return __('No addons available', 'mobile-dj-manager');
    }
    $return = array();
    foreach ($addons as $addon) {
        $addon_price = '';
        if ($price) {
            $addon_price = ' ' . mdjm_currency_filter(mdjm_format_amount(mdjm_get_package_price($addon->ID)));
        }
        $return[] = get_the_title($addon->ID) . '' . $addon_price;
    }
    $return = apply_filters('mdjm_list_available_addons', $return, $price);
    return implode('<br />', $return);
}
Esempio n. 7
0
/**
 * Get system info
 *
 * @since	1.4
 * @global	obj	$wpdb	Used to query the database using the WordPress Database API
 * @return	str	$return	A string containing the info to output
 */
function mdjm_tools_sysinfo_get()
{
    global $wpdb;
    // Get theme info
    $theme_data = wp_get_theme();
    $theme = $theme_data->Name . ' ' . $theme_data->Version;
    $return = '### Begin System Info ###' . "\n\n";
    // Start with the basics...
    $return .= '-- Site Info' . "\n\n";
    $return .= 'Site URL:                 ' . site_url() . "\n";
    $return .= 'Home URL:                 ' . home_url() . "\n";
    $return .= 'Multisite:                ' . (is_multisite() ? 'Yes' : 'No') . "\n";
    $return = apply_filters('mdjm_sysinfo_after_site_info', $return);
    // WordPress configuration
    $return .= "\n" . '-- WordPress Configuration' . "\n\n";
    $return .= 'Version:                  ' . get_bloginfo('version') . "\n";
    $return .= 'Language:                 ' . (defined('WPLANG') && WPLANG ? WPLANG : 'en_US') . "\n";
    $return .= 'Permalink Structure:      ' . (get_option('permalink_structure') ? get_option('permalink_structure') : 'Default') . "\n";
    $return .= 'Active Theme:             ' . $theme . "\n";
    $return .= 'Show On Front:            ' . get_option('show_on_front') . "\n";
    // Only show page specs if frontpage is set to 'page'
    if (get_option('show_on_front') == 'page') {
        $front_page_id = get_option('page_on_front');
        $blog_page_id = get_option('page_for_posts');
        $return .= 'Page On Front:            ' . ($front_page_id != 0 ? get_the_title($front_page_id) . ' (#' . $front_page_id . ')' : 'Unset') . "\n";
        $return .= 'Page For Posts:           ' . ($blog_page_id != 0 ? get_the_title($blog_page_id) . ' (#' . $blog_page_id . ')' : 'Unset') . "\n";
    }
    $return .= 'ABSPATH:                  ' . ABSPATH . "\n";
    // Make sure wp_remote_post() is working
    $request['cmd'] = '_notify-validate';
    $params = array('sslverify' => false, 'timeout' => 60, 'user-agent' => 'MDJM/' . MDJM_VERSION_NUM, 'body' => $request);
    $response = wp_remote_post('https://www.paypal.com/cgi-bin/webscr', $params);
    if (!is_wp_error($response) && $response['response']['code'] >= 200 && $response['response']['code'] < 300) {
        $WP_REMOTE_POST = 'wp_remote_post() works';
    } else {
        $WP_REMOTE_POST = 'wp_remote_post() does not work';
    }
    $return .= 'Remote Post:              ' . $WP_REMOTE_POST . "\n";
    $return .= 'Table Prefix:             ' . 'Length: ' . strlen($wpdb->prefix) . '   Status: ' . (strlen($wpdb->prefix) > 16 ? 'ERROR: Too long' : 'Acceptable') . "\n";
    $return .= 'WP_DEBUG:                 ' . (defined('WP_DEBUG') ? WP_DEBUG ? 'Enabled' : 'Disabled' : 'Not set') . "\n";
    $return .= 'Memory Limit:             ' . WP_MEMORY_LIMIT . "\n";
    $return .= 'Registered Post Stati:    ' . implode(', ', get_post_stati()) . "\n";
    $return = apply_filters('mdjm_sysinfo_after_wordpress_config', $return);
    // MDJM configuration
    $employer = mdjm_is_employer();
    $packages = mdjm_packages_enabled();
    $debug = MDJM_DEBUG;
    $return .= "\n" . '-- MDJM Configuration' . "\n\n";
    $return .= 'Version:                  ' . MDJM_VERSION_NUM . "\n";
    $return .= 'Upgraded From:            ' . get_option('mdjm_version_upgraded_from', 'None') . "\n";
    $return .= 'Debugging Status:         ' . (!empty($debug) ? "Enabled\n" : "Disabled\n");
    $return .= 'Multiple Employees:       ' . (!empty($employer) ? "Enabled\n" : "Disabled\n");
    $return .= 'Packages Enabled:         ' . (!empty($packages) ? "Enabled\n" : "Disabled\n");
    $return .= 'Currency Code:            ' . mdjm_get_currency() . "\n";
    $return .= 'Currency Position:        ' . mdjm_get_option('currency_format', 'before') . "\n";
    $return .= 'Decimal Separator:        ' . mdjm_get_option('decimal', '.') . "\n";
    $return .= 'Thousands Separator:      ' . mdjm_get_option('thousands_separator', ',') . "\n";
    $return = apply_filters('mdjm_sysinfo_after_mdjm_config', $return);
    // MDJM pages
    $clientzone_page = mdjm_get_option('app_home_page', '');
    $contact_page = mdjm_get_option('contact_page', '');
    $contracts_page = mdjm_get_option('contracts_page', '');
    $payments_page = mdjm_get_option('payments_page', '');
    $playlist_page = mdjm_get_option('playlist_page', '');
    $profile_page = mdjm_get_option('profile_page', '');
    $quotes_page = mdjm_get_option('quotes_page', '');
    $return .= "\n" . '-- MDJM Page Configuration' . "\n\n";
    $return .= 'Client Zone Page:         ' . (!empty($clientzone_page) ? get_permalink($clientzone_page) . "\n" : "Unset\n");
    $return .= 'Contact Page:             ' . (!empty($contact_page) ? get_permalink($contact_page) . "\n" : "Unset\n");
    $return .= 'Contracts Page:           ' . (!empty($contracts_page) ? get_permalink($contracts_page) . "\n" : "Unset\n");
    $return .= 'Payments Page:            ' . (!empty($payments_page) ? get_permalink($payments_page) . "\n" : "Unset\n");
    $return .= 'Playlist Page:            ' . (!empty($playlist_page) ? get_permalink($playlist_page) . "\n" : "Unset\n");
    $return .= 'Profile Page:             ' . (!empty($profile_page) ? get_permalink($profile_page) . "\n" : "Unset\n");
    $return .= 'Quotes Page:              ' . (!empty($quotes_page) ? get_permalink($quotes_page) . "\n" : "Unset\n");
    $return = apply_filters('mdjm_sysinfo_after_mdjm_pages', $return);
    // MDJM email templates
    $quote_template = mdjm_get_option('enquiry', '');
    $online_quote = mdjm_get_option('online_enquiry', '');
    $unavailable_template = mdjm_get_option('unavailable', '');
    $contract_template = mdjm_get_option('contract', '');
    $booking_conf_template = mdjm_get_option('booking_conf_client', '');
    $auto_payment_template = mdjm_get_option('payment_cfm_template', '');
    $manual_payment_template = mdjm_get_option('manual_payment_cfm_template', '');
    $return .= "\n" . '-- MDJM Email Templates' . "\n\n";
    $return .= 'Quote:                    ' . (!empty($quote_template) ? get_the_title($quote_template) . ' (' . $quote_template . ')' . "\n" : "Unset\n");
    $return .= 'Online Quote:             ' . (!empty($online_quote) ? get_the_title($online_quote) . ' (' . $online_quote . ')' . "\n" : "Unset\n");
    $return .= 'Unavailable:              ' . (!empty($unavailable_template) ? get_the_title($unavailable_template) . ' (' . $unavailable_template . ')' . "\n" : "Unset\n");
    $return .= 'Awaiting Contract:        ' . (!empty($contract_template) ? get_the_title($quote_template) . ' (' . $quote_template . ')' . "\n" : "Unset\n");
    $return .= 'Booking Confirmation:     ' . (!empty($booking_conf_template) ? get_the_title($booking_conf_template) . ' (' . $booking_conf_template . ')' . "\n" : "Unset\n");
    $return .= 'Gateway Payment:          ' . (!empty($auto_payment_template) ? get_the_title($auto_payment_template) . ' (' . $auto_payment_template . ')' . "\n" : "Unset\n");
    $return .= 'Manual Payment:           ' . (!empty($manual_payment_template) ? get_the_title($manual_payment_template) . ' (' . $manual_payment_template . ')' . "\n" : "Unset\n");
    $return = apply_filters('mdjm_sysinfo_after_mdjm_pages', $return);
    // MDJM Payment Gateways
    $return .= "\n" . '-- MDJM Gateway Configuration' . "\n\n";
    $active_gateways = mdjm_get_enabled_payment_gateways();
    if ($active_gateways) {
        $default_gateway_is_active = mdjm_is_gateway_active(mdjm_get_default_gateway());
        if ($default_gateway_is_active) {
            $default_gateway = mdjm_get_default_gateway();
            $default_gateway = $active_gateways[$default_gateway]['admin_label'];
        } else {
            $default_gateway = 'Test Payment';
        }
        $gateways = array();
        foreach ($active_gateways as $gateway) {
            $gateways[] = $gateway['admin_label'];
        }
        $return .= 'Enabled Gateways:         ' . implode(', ', $gateways) . "\n";
        $return .= 'Default Gateway:          ' . $default_gateway . "\n";
    } else {
        $return .= 'Enabled Gateways:         None' . "\n";
    }
    $return = apply_filters('mdjm_sysinfo_after_mdjm_gateways', $return);
    // MDJM Templates
    $dir = get_stylesheet_directory() . '/mdjm-templates/*';
    if (is_dir($dir) && count(glob("{$dir}/*")) !== 0) {
        $return .= "\n" . '-- MDJM Template Overrides' . "\n\n";
        foreach (glob($dir) as $file) {
            $return .= 'Filename:                 ' . basename($file) . "\n";
        }
        $return = apply_filters('mdjm_sysinfo_after_mdjm_templates', $return);
    }
    // Get plugins that have an update
    $updates = get_plugin_updates();
    // Must-use plugins
    // NOTE: MU plugins can't show updates!
    $muplugins = get_mu_plugins();
    if (count($muplugins > 0)) {
        $return .= "\n" . '-- Must-Use Plugins' . "\n\n";
        foreach ($muplugins as $plugin => $plugin_data) {
            $return .= $plugin_data['Name'] . ': ' . $plugin_data['Version'] . "\n";
        }
        $return = apply_filters('mdjm_sysinfo_after_wordpress_mu_plugins', $return);
    }
    // WordPress active plugins
    $return .= "\n" . '-- WordPress Active Plugins' . "\n\n";
    $plugins = get_plugins();
    $active_plugins = get_option('active_plugins', array());
    foreach ($plugins as $plugin_path => $plugin) {
        if (!in_array($plugin_path, $active_plugins)) {
            continue;
        }
        $update = array_key_exists($plugin_path, $updates) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : '';
        $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
    }
    $return = apply_filters('mdjm_sysinfo_after_wordpress_plugins', $return);
    // WordPress inactive plugins
    $return .= "\n" . '-- WordPress Inactive Plugins' . "\n\n";
    foreach ($plugins as $plugin_path => $plugin) {
        if (in_array($plugin_path, $active_plugins)) {
            continue;
        }
        $update = array_key_exists($plugin_path, $updates) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : '';
        $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
    }
    $return = apply_filters('mdjm_sysinfo_after_wordpress_plugins_inactive', $return);
    if (is_multisite()) {
        // WordPress Multisite active plugins
        $return .= "\n" . '-- Network Active Plugins' . "\n\n";
        $plugins = wp_get_active_network_plugins();
        $active_plugins = get_site_option('active_sitewide_plugins', array());
        foreach ($plugins as $plugin_path) {
            $plugin_base = plugin_basename($plugin_path);
            if (!array_key_exists($plugin_base, $active_plugins)) {
                continue;
            }
            $update = array_key_exists($plugin_path, $updates) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : '';
            $plugin = get_plugin_data($plugin_path);
            $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
        }
        $return = apply_filters('mdjm_sysinfo_after_wordpress_ms_plugins', $return);
    }
    // Server configuration (really just versioning)
    $return .= "\n" . '-- Webserver Configuration' . "\n\n";
    $return .= 'PHP Version:              ' . PHP_VERSION . "\n";
    $return .= 'MySQL Version:            ' . $wpdb->db_version() . "\n";
    $return .= 'Webserver Info:           ' . $_SERVER['SERVER_SOFTWARE'] . "\n";
    $return = apply_filters('mdjm_sysinfo_after_webserver_config', $return);
    // PHP configs... now we're getting to the important stuff
    $return .= "\n" . '-- PHP Configuration' . "\n\n";
    $return .= 'Safe Mode:                ' . (ini_get('safe_mode') ? 'Enabled' : 'Disabled' . "\n");
    $return .= 'Memory Limit:             ' . ini_get('memory_limit') . "\n";
    $return .= 'Upload Max Size:          ' . ini_get('upload_max_filesize') . "\n";
    $return .= 'Post Max Size:            ' . ini_get('post_max_size') . "\n";
    $return .= 'Upload Max Filesize:      ' . ini_get('upload_max_filesize') . "\n";
    $return .= 'Time Limit:               ' . ini_get('max_execution_time') . "\n";
    $return .= 'Max Input Vars:           ' . ini_get('max_input_vars') . "\n";
    $return .= 'Display Errors:           ' . (ini_get('display_errors') ? 'On (' . ini_get('display_errors') . ')' : 'N/A') . "\n";
    $return = apply_filters('mdjm_sysinfo_after_php_config', $return);
    // PHP extensions and such
    $return .= "\n" . '-- PHP Extensions' . "\n\n";
    $return .= 'cURL:                     ' . (function_exists('curl_init') ? 'Supported' : 'Not Supported') . "\n";
    $return .= 'fsockopen:                ' . (function_exists('fsockopen') ? 'Supported' : 'Not Supported') . "\n";
    $return .= 'SOAP Client:              ' . (class_exists('SoapClient') ? 'Installed' : 'Not Installed') . "\n";
    $return .= 'Suhosin:                  ' . (extension_loaded('suhosin') ? 'Installed' : 'Not Installed') . "\n";
    $return = apply_filters('mdjm_sysinfo_after_php_ext', $return);
    $return .= "\n" . '### End System Info ###';
    return $return;
}
Esempio n. 8
0
/**
 * Save the meta data for the event
 *
 * @since	0.7
 * @param	int		$post_id		The current event post ID.
 * @param	obj		$post			The current event post object (WP_Post).
 * @param	bool	$update			Whether this is an existing post being updated or not.
 * 
 * @return	void
 */
function mdjm_save_event_post($post_id, $post, $update)
{
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }
    if ($post->post_status == 'trash') {
        return;
    }
    if (empty($update)) {
        return;
    }
    // Permission Check
    if (!mdjm_employee_can('manage_events')) {
        MDJM()->debug->log_it(sprintf('PERMISSION ERROR: User %s is not allowed to edit events', get_current_user_id()));
        return;
    }
    // Remove the save post action to avoid loops.
    remove_action('save_post_mdjm-event', 'mdjm_save_event_post', 10, 3);
    // Fire our pre-save hook
    do_action('mdjm_pre_event_save', $post_id, $post, $update);
    $debug[] = 'Starting Event Save';
    // Get current meta data for the post so we can track changes within the journal.
    $current_meta = get_post_meta($post_id);
    /**
     * Get the Client ID and store it in the event data array.
     * If a client has been selected from the dropdown, we simply use that ID.
     * If adding a new client, call the method and use the returned user ID.
     */
    $event_data['_mdjm_event_client'] = $_POST['client_name'] != 'add_new' ? $_POST['client_name'] : mdjm_add_client();
    /**
     * For new events we fire the 'mdjm_add_new_event' action
     */
    if (empty($update)) {
        do_action('mdjm_create_new_event', $post);
    }
    /**
     * If the client is flagged to have their password reset, set the flag.
     * The flag will be checked and processed during the content tag filtering process.
     */
    if (!empty($_POST['mdjm_reset_pw'])) {
        $debug[] = sprintf('Client %s flagged for password reset', $event_data['_mdjm_event_client']);
        update_user_meta($event_data['_mdjm_event_client'], 'mdjm_pass_action', true);
    }
    /**
     * Determine the Venue ID if an existing venue was selected.
     * Otherwise, determine if we're using the client's address or adding a manual venue address
     */
    if ($_POST['venue_id'] != 'manual' && $_POST['venue_id'] != 'client') {
        $event_data['_mdjm_event_venue_id'] = $_POST['venue_id'];
    } elseif (!empty($_POST['_mdjm_event_venue_id']) && $_POST['_mdjm_event_venue_id'] == 'client') {
        $event_data['_mdjm_event_venue_id'] = 'client';
    } else {
        $event_data['_mdjm_event_venue_id'] = 'manual';
    }
    /**
     * If the option was selected to save the venue, prepare the post and post meta data
     * for the venue.
     */
    if ($_POST['venue_id'] == 'manual' && !empty($_POST['save_venue'])) {
        foreach ($_POST as $venue_key => $venue_value) {
            if (substr($venue_key, 0, 6) == 'venue_') {
                $venue_meta[$venue_key] = $venue_value;
                if ($venue_key == 'venue_postcode' && !empty($venue_value)) {
                    $venue_meta[$venue_key] = strtoupper($venue_value);
                } elseif ($venue_key == 'venue_email' && !empty($venue_value)) {
                    $venue_meta[$venue_key] = sanitize_email($venue_value);
                } else {
                    $venue_meta[$venue_key] = sanitize_text_field(ucwords($venue_value));
                }
            }
        }
        // Create the new venue
        $event_data['_mdjm_event_venue_id'] = mdjm_add_venue($_POST['venue_name'], $venue_meta);
    } else {
        // Manual venue address entry
        if ($_POST['venue_id'] != 'client') {
            $event_data['_mdjm_event_venue_name'] = sanitize_text_field(ucwords($_POST['venue_name']));
            $event_data['_mdjm_event_venue_contact'] = sanitize_text_field(ucwords($_POST['venue_contact']));
            $event_data['_mdjm_event_venue_phone'] = sanitize_text_field($_POST['venue_phone']);
            $event_data['_mdjm_event_venue_email'] = sanitize_email(strtolower($_POST['venue_email']));
            $event_data['_mdjm_event_venue_address1'] = sanitize_text_field(ucwords($_POST['venue_address1']));
            $event_data['_mdjm_event_venue_address2'] = sanitize_text_field(ucwords($_POST['venue_address2']));
            $event_data['_mdjm_event_venue_town'] = sanitize_text_field(ucwords($_POST['venue_town']));
            $event_data['_mdjm_event_venue_county'] = sanitize_text_field(ucwords($_POST['venue_county']));
            $event_data['_mdjm_event_venue_postcode'] = strtoupper(sanitize_text_field($_POST['venue_postcode']));
        } else {
            // Using clients address
            $client_data = get_userdata($event_data['_mdjm_event_client']);
            $event_data['_mdjm_event_venue_name'] = __('Client Address', 'mobile-dj-manager');
            $event_data['_mdjm_event_venue_contact'] = sprintf('%s %s', !empty($client_data->first_name) ? sanitize_text_field($client_data->first_name) : '', !empty($client_data->last_name) ? sanitize_text_field($client_data->last_name) : '');
            $event_data['_mdjm_event_venue_phone'] = !empty($client_data->phone1) ? $client_data->phone1 : '';
            $event_data['_mdjm_event_venue_email'] = !empty($client_data->user_email) ? $client_data->user_email : '';
            $event_data['_mdjm_event_venue_address1'] = !empty($client_data->address1) ? $client_data->address1 : '';
            $event_data['_mdjm_event_venue_address2'] = !empty($client_data->address2) ? $client_data->address2 : '';
            $event_data['_mdjm_event_venue_town'] = !empty($client_data->town) ? $client_data->town : '';
            $event_data['_mdjm_event_venue_county'] = !empty($client_data->county) ? $client_data->county : '';
            $event_data['_mdjm_event_venue_postcode'] = !empty($client_data->postcode) ? $client_data->postcode : '';
        }
    }
    /**
     * Travel data
     */
    $travel_fields = mdjm_get_event_travel_fields();
    foreach ($travel_fields as $travel_field) {
        $field = 'travel_' . $travel_field;
        $travel_data[$travel_field] = !empty($_POST[$field]) ? $_POST[$field] : '';
        if ('cost' == $travel_field && !empty($_POST[$field])) {
            $travel_data[$travel_field] = mdjm_sanitize_amount($_POST[$field]);
        }
    }
    $event_data['_mdjm_event_travel_data'] = $travel_data;
    /**
     * Prepare the remaining event meta data.
     */
    $event_data['_mdjm_event_last_updated_by'] = get_current_user_id();
    /**
     * Event name.
     * If no name is defined, use the event type.
     * Allow filtering of the event name with the `mdjm_event_name` filter.
     */
    if (empty($_POST['_mdjm_event_name'])) {
        $_POST['_mdjm_event_name'] = get_term($_POST['mdjm_event_type'], 'event-types')->name;
    }
    $_POST['_mdjm_event_name'] = apply_filters('mdjm_event_name', $_POST['_mdjm_event_name'], $post_id);
    // Generate the playlist reference for guest access
    if (empty($update) || empty($current_meta['_mdjm_event_playlist_access'][0])) {
        $event_data['_mdjm_event_playlist_access'] = mdjm_generate_playlist_guest_code();
    }
    // Set whether or not the playlist is enabled for the event
    $event_data['_mdjm_event_playlist'] = !empty($_POST['enable_playlist']) ? $_POST['enable_playlist'] : 'N';
    /**
     * All the remaining custom meta fields are prefixed with '_mdjm_event_'.
     * Loop through all $_POST data and put all event meta fields into the $event_data array
     */
    foreach ($_POST as $key => $value) {
        if (substr($key, 0, 12) == '_mdjm_event_') {
            if ($key == '_mdjm_event_dj_wage' || $key == '_mdjm_event_cost' || $key == '_mdjm_event_deposit') {
                $value = mdjm_sanitize_amount($value);
            }
            $event_data[$key] = $value;
        }
    }
    /**
     * We store all times in H:i:s but the user may prefer a different format so we
     * determine their time format setting and adjust to H:i:s for saving.
     */
    if (mdjm_get_option('time_format', 'H:i') == 'H:i') {
        // 24 Hr
        $event_data['_mdjm_event_start'] = date('H:i:s', strtotime($_POST['event_start_hr'] . ':' . $_POST['event_start_min']));
        $event_data['_mdjm_event_finish'] = date('H:i:s', strtotime($_POST['event_finish_hr'] . ':' . $_POST['event_finish_min']));
        $event_data['_mdjm_event_djsetup_time'] = date('H:i:s', strtotime($_POST['dj_setup_hr'] . ':' . $_POST['dj_setup_min']));
    } else {
        // 12 hr
        $event_data['_mdjm_event_start'] = date('H:i:s', strtotime($_POST['event_start_hr'] . ':' . $_POST['event_start_min'] . $_POST['event_start_period']));
        $event_data['_mdjm_event_finish'] = date('H:i:s', strtotime($_POST['event_finish_hr'] . ':' . $_POST['event_finish_min'] . $_POST['event_finish_period']));
        $event_data['_mdjm_event_djsetup_time'] = date('H:i:s', strtotime($_POST['dj_setup_hr'] . ':' . $_POST['dj_setup_min'] . $_POST['dj_setup_period']));
    }
    if (empty($_POST['_mdjm_event_djsetup'])) {
        $event_data['_mdjm_event_djsetup'] = $_POST['_mdjm_event_date'];
    }
    /**
     * Set the event end date.
     * If the finish time is less than the start time, assume following day.
     */
    if (date('H', strtotime($event_data['_mdjm_event_finish'])) > date('H', strtotime($event_data['_mdjm_event_start']))) {
        $event_data['_mdjm_event_end_date'] = $_POST['_mdjm_event_date'];
    } else {
        // End date is following day
        $event_data['_mdjm_event_end_date'] = date('Y-m-d', strtotime('+1 day', strtotime($_POST['_mdjm_event_date'])));
    }
    /**
     * Determine the state of the Deposit & Balance payments.
     * 
     */
    $event_data['_mdjm_event_deposit_status'] = !empty($_POST['deposit_paid']) ? $_POST['deposit_paid'] : 'Due';
    $event_data['_mdjm_event_balance_status'] = !empty($_POST['balance_paid']) ? $_POST['balance_paid'] : 'Due';
    $deposit_payment = $event_data['_mdjm_event_deposit_status'] == 'Paid' && $current_meta['_mdjm_event_deposit_status'][0] != 'Paid' ? true : false;
    $balance_payment = $event_data['_mdjm_event_balance_status'] == 'Paid' && $current_meta['_mdjm_event_balance_status'][0] != 'Paid' ? true : false;
    // Add-Ons
    if (mdjm_packages_enabled()) {
        $event_data['_mdjm_event_addons'] = !empty($_POST['event_addons']) ? $_POST['event_addons'] : '';
    }
    // Assign the event type
    $existing_event_type = wp_get_object_terms($post_id, 'event-types');
    mdjm_set_event_type($post_id, (int) $_POST['mdjm_event_type']);
    // Assign the enquiry source
    mdjm_set_enquiry_source($post_id, (int) $_POST['mdjm_enquiry_source']);
    /**
     * Update the event post meta data
     */
    $debug[] = 'Beginning Meta Updates';
    mdjm_update_event_meta($post_id, $event_data);
    $debug[] = 'Meta Updates Completed';
    if ($deposit_payment == true || $balance_payment == true) {
        if ($balance_payment == true) {
            unset($event_data['_mdjm_event_balance_status']);
            unset($event_data['_mdjm_event_deposit_status']);
            mdjm_mark_event_balance_paid($post_id);
        } else {
            unset($event_data['_mdjm_event_deposit_status']);
            mdjm_mark_event_deposit_paid($post_id);
        }
    }
    // Set the event status & initiate tasks based on the status
    if ($_POST['original_post_status'] != $_POST['mdjm_event_status']) {
        mdjm_update_event_status($post_id, $_POST['mdjm_event_status'], $_POST['original_post_status'], array('client_notices' => empty($_POST['mdjm_block_emails']) ? true : false, 'email_template' => !empty($_POST['mdjm_email_template']) ? $_POST['mdjm_email_template'] : false, 'quote_template' => !empty($_POST['mdjm_online_quote']) ? $_POST['mdjm_online_quote'] : false));
    } else {
        // Event status is un-changed so just log the changes to the journal
        mdjm_add_journal(array('user_id' => get_current_user_id(), 'event_id' => $post_id, 'comment_content' => sprintf('%s %s via Admin', mdjm_get_label_singular(), empty($update) ? 'created' : 'updated')), array('type' => 'update-event', 'visibility' => '2'));
    }
    // Fire the save event hook
    do_action('mdjm_save_event', $post, $_POST['mdjm_event_status']);
    // Fire our post save hook
    do_action('mdjm_after_event_save', $post_id, $post, $update);
    // Re-add the save post action to avoid loops
    add_action('save_post_mdjm-event', 'mdjm_save_event_post', 10, 3);
    $debug[] = sprintf('Completed Event Save for event %s', $post_id);
    if (!empty($debug) && MDJM_DEBUG == true) {
        $true = true;
        foreach ($debug as $log) {
            MDJM()->debug->log_it($log, $true);
            $true = false;
        }
    }
}