/** 
 * post buy button
 *
 * @param int post id
 * @param bool show error message
 * @param bool guest purchase
 * @return string button 
 */
function mgm_get_post_purchase_button($post_id = NULL, $show_message = true, $guest_purchase = false)
{
    // current user
    $current_user = wp_get_current_user();
    // get system
    $system_obj = mgm_get_class('system');
    // guest purchase - issue #1355
    if (!$guest_purchase) {
        $guest_purchase = bool_from_yn(mgm_get_setting('enable_guest_content_purchase'));
    }
    // get current post id
    if (!$post_id) {
        $post_id = get_the_ID();
    }
    // currency
    $currency = $system_obj->get_setting('currency');
    //issue #867
    $css_group = mgm_get_css_group();
    // css
    if ($css_group != 'none') {
        // css link
        $return = '<link rel="stylesheet" href="' . MGM_ASSETS_URL . 'css/' . $css_group . '/mgm.form.fields.css' . '" type="text/css" media="all" />';
    }
    // if user logged in
    if ($current_user->ID > 0 || $guest_purchase === TRUE) {
        // get active payment modules
        $a_payment_modules = $system_obj->get_active_modules('payment');
        // init
        $payment_modules = array();
        // when active
        if ($a_payment_modules) {
            // loop
            foreach ($a_payment_modules as $payment_module) {
                // not trial
                if (in_array($payment_module, array('mgm_free', 'mgm_trial'))) {
                    continue;
                }
                // store
                $payment_modules[] = $payment_module;
            }
        }
        // if show
        if ($show_message) {
            // text
            $private_text_purchasable = mgm_stripslashes_deep($system_obj->get_template('private_text_purchasable', array(), true));
            // def return
            $return .= sprintf('<div class="post_purchase_select_gateway">%s</div>', $private_text_purchasable);
        }
        // some module active
        if (count($payment_modules) > 0) {
            // in transactions url set
            if (!($transactions_url = $system_obj->get_setting('transactions_url'))) {
                // base url
                $transactions_url = mgm_home_url('transactions');
            }
            // post url
            $post_payment_url = add_query_arg(array('method' => 'payment_purchase'), $transactions_url);
            // hook
            add_filter('mgm_payment_gateways_as_custom_field', 'mgm_payment_gateways_as_custom_field_on_postpurchase');
            // custom fields
            $custom_fields = mgm_get_partial_fields(array('on_postpurchase' => true), 'mgm_postpurchase_field');
            // button
            $button_code = sprintf('<input class="button" type="submit" name="btnsubmit" value="%s">', __('Buy Now', 'mgm'));
            // filter
            $button_code = apply_filters('post_purchase_button_html', $button_code);
            // init
            $addon_options_html = '';
            // addons
            if ($addons = mgm_get_post($post_id)->get_addons()) {
                $addon_options_html = mgm_get_post_purchase_addon_options_html($addons);
            }
            // issue #1250
            $button = mgm_subscription_purchase_errors();
            // button
            $button .= '<div class="mgm_custom_filed_table">
						<form name="mgm_buypost_form" id="mgm_buypost_form" class="mgm_form" method="post" action="' . $post_payment_url . '">
							' . $custom_fields . '
							' . $addon_options_html . '
							' . $button_code . '
							<input type="hidden" name="post_id" value="' . $post_id . '">
							<input type="hidden" name="form_action" value="' . post_permalink($post_id) . '">
							<input type="hidden" name="guest_purchase" value="' . $guest_purchase . '">
					    </form>
					    </div>';
            // return
            $return .= $button;
        } else {
            $return .= sprintf('<div class="mgm_no_payment_gateway">%s</div>', __('No Payment Gateway available.', 'mgm'));
        }
    } else {
        // message
        if ($show_message) {
            // text
            $private_text_purchasable_login = mgm_private_text_tags(mgm_stripslashes_deep($system_obj->get_template('private_text_purchasable_login', array(), true)));
            // only when show message
            $return .= sprintf('<div class="post_purchase_select_gateway">%s</div>', $private_text_purchasable_login);
        }
    }
    // return
    return $return;
}
/**
 * url content protection
 */
function mgm_url_content_protection($content)
{
    // return 'Protected';
    $system_obj = mgm_get_class('system');
    // check
    $current_user = wp_get_current_user();
    // message code
    if ($current_user->ID) {
        // logged in user
        $message_code = mgm_post_is_purchasable() ? 'private_text_purchasable' : 'private_text_no_access';
    } else {
        // logged out user
        $message_code = mgm_post_is_purchasable() ? 'private_text_purchasable_login' : 'private_text';
    }
    // protected_message
    $protected_message = sprintf('<div class="mgm_private_no_access">%s</div>', mgm_private_text_tags(mgm_stripslashes_deep($system_obj->get_template($message_code, array(), true))));
    // filter message
    $protected_message = mgm_replace_message_tags($protected_message);
    // return
    return $content = $protected_message;
}
function mgm_replace_postdealy_content($content = NULL)
{
    // system
    $system_obj = mgm_get_class('system');
    // not logged in
    $content = mgm_private_text_tags(mgm_stripslashes_deep($system_obj->get_template('private_text_postdelay_no_access', array(), true)));
    //return
    return sprintf('<div class="mgm_private_postdealy_no_access">%s</div>', mgm_replace_message_tags($content));
}