return urlencode(gmdate('Y-m-d\\TH:i:s.00\\Z', $result));
        }
        function modStartDate($expire_stamp)
        {
            return urlencode(gmdate('Y-m-d\\TH:i:s.00\\Z', $expire_stamp));
        }
        public static function get_name()
        {
            return array('2checkout' => __('2Checkout', 'psts'));
        }
        public static function render_gateway($render_data = array(), $args, $blog_id, $domain, $prefer_cc = true)
        {
            $content = __('2CheckOut Gateway', 'psts');
            return $content;
        }
        public static function process_checkout_form($process_data = array(), $blog_id, $domain)
        {
        }
        public static function get_existing_user_information()
        {
            $content = '';
            return empty($content) ? array() : $content;
        }
        public static function process_on_render()
        {
            return true;
        }
    }
    //register the gateway
    psts_register_gateway('ProSites_Gateway_2Checkout', __('2Checkout', 'psts'), __('Online payment processing service that helps you accept credit cards, PayPal and debit cards', 'psts'));
}
                    if (is_pro_site($blog_id)) {
                        $args['cancel_info'] = '<p class="prosites-cancel-description">' . sprintf(__('If you choose to cancel your subscription this site should continue to have %1$s features until %2$s.', 'psts'), $level, $end_date) . '</p>';
                        $cancel_label = __('Cancel Your Subscription', 'psts');
                        // CSS class of <a> is important to handle confirmations
                        $args['cancel_link'] = '<p class="prosites-cancel-link"><a class="cancel-prosites-plan button" href="' . wp_nonce_url($psts->checkout_url($blog_id) . '&action=cancel', 'psts-cancel') . '" title="' . esc_attr($cancel_label) . '">' . esc_html($cancel_label) . '</a></p>';
                    }
                }
                // Receipt form
                $args['receipt_form'] = $psts->receipt_form($blog_id);
            }
            // Show all is true
            $args['all_fields'] = true;
        }
        return empty($args) ? array() : $args;
    }
    public static function process_on_render()
    {
        return true;
    }
    public static function get_merchant_countries()
    {
        return array('AU' => 'Australia', 'CA' => 'Canada', 'IE' => 'Ireland', 'UK' => 'United Kingdom', 'US' => 'United States', 'BE' => 'Belgium (Beta)', 'FI' => 'Finland (Beta)', 'FR' => 'France (Beta)', 'DE' => 'Germany (Beta)', 'LU' => 'Luxembourg (Beta)', 'NL' => 'Netherlands (Beta)', 'ES' => 'Spain (Beta)', 'DK' => 'Denmark (Beta)', 'NO' => 'Norway (Beta)', 'SE' => 'Sweden (Beta)', 'AT' => 'Austria (Beta)', 'IT' => 'Italy (Beta)', 'CH' => 'Switzerland (Private Beta)');
    }
    public static function get_supported_currencies()
    {
        return array('AED' => array('United Arab Emirates Dirham', '62F, 2E ,625'), 'AFN' => array('Afghan Afghani', '60b'), 'ALL' => array('Albanian Lek', '4c, 65, 6b'), 'AMD' => array('Armenian Dram', '58F'), 'ANG' => array('Netherlands Antillean Gulden', '192'), 'AOA' => array('Angolan Kwanza', '4B, 7A'), 'ARS' => array('Argentine Peso', '24'), 'AUD' => array('Australian Dollar', '24'), 'AWG' => array('Aruban Florin', '192'), 'AZN' => array('Azerbaijani Manat', '43c, 430, 43d'), 'BAM' => array('Bosnia & Herzegovina Convertible Mark', '4b, 4d'), 'BBD' => array('Barbadian Dollar', '24'), 'BDT' => array('Bangladeshi Taka', '09F3'), 'BGN' => array('Bulgarian Lev', '43b, 432'), 'BIF' => array('Burundian Franc', '46, 42, 75'), 'BMD' => array('Bermudian Dollar', '24'), 'BND' => array('Brunei Dollar', '24'), 'BOB' => array('Bolivian Boliviano', '24, 62'), 'BRL' => array('Brazilian Real', '52, 24'), 'BSD' => array('Bahamian Dollar', '24'), 'BWP' => array('Botswana Pula', '50'), 'BZD' => array('Belize Dollar', '42, 5a, 24'), 'CAD' => array('Canadian Dollar', '24'), 'CDF' => array('Congolese Franc', '46, 43'), 'CHF' => array('Swiss Franc', '43, 48, 46'), 'CLP' => array('Chilean Peso', '24'), 'CNY' => array('Chinese Renminbi Yuan', 'a5'), 'COP' => array('Colombian Peso', '24'), 'CRC' => array('Costa Rican Colón', '20a1'), 'CVE' => array('Cape Verdean Escudo', '24'), 'CZK' => array('Czech Koruna', '4b, 10d'), 'DJF' => array('Djiboutian Franc', '46, 64, 6A'), 'DKK' => array('Danish Krone', '6b, 72'), 'DOP' => array('Dominican Peso', '52, 44, 24'), 'DZD' => array('Algerian Dinar', '62F, 62C'), 'EEK' => array('Estonian Kroon', '6b, 72'), 'EGP' => array('Egyptian Pound', 'a3'), 'ETB' => array('Ethiopian Birr', '1265, 122D'), 'EUR' => array('Euro', '20ac'), 'FJD' => array('Fijian Dollar', '24'), 'FKP' => array('Falkland Islands Pound', 'a3'), 'GBP' => array('British Pound', 'a3'), 'GEL' => array('Georgian Lari', '10DA'), 'GIP' => array('Gibraltar Pound', 'a3'), 'GMD' => array('Gambian Dalasi', '44'), 'GNF' => array('Guinean Franc', '46, 47'), 'GTQ' => array('Guatemalan Quetzal', '51'), 'GYD' => array('Guyanese Dollar', '24'), 'HKD' => array('Hong Kong Dollar', '24'), 'HNL' => array('Honduran Lempira', '4c'), 'HRK' => array('Croatian Kuna', '6b, 6e'), 'HTG' => array('Haitian Gourde', '47'), 'HUF' => array('Hungarian Forint', '46, 74'), 'IDR' => array('Indonesian Rupiah', '52, 70'), 'ILS' => array('Israeli New Sheqel', '20aa'), 'INR' => array('Indian Rupee', '20B9'), 'ISK' => array('Icelandic Króna', '6b, 72'), 'JMD' => array('Jamaican Dollar', '4a, 24'), 'JPY' => array('Japanese Yen', 'a5'), 'KES' => array('Kenyan Shilling', '4B, 53, 68'), 'KGS' => array('Kyrgyzstani Som', '43b, 432'), 'KHR' => array('Cambodian Riel', '17db'), 'KMF' => array('Comorian Franc', '43, 46'), 'KRW' => array('South Korean Won', '20a9'), 'KYD' => array('Cayman Islands Dollar', '24'), 'KZT' => array('Kazakhstani Tenge', '43b, 432'), 'LAK' => array('Lao Kip', '20ad'), 'LBP' => array('Lebanese Pound', 'a3'), 'LKR' => array('Sri Lankan Rupee', '20a8'), 'LRD' => array('Liberian Dollar', '24'), 'LSL' => array('Lesotho Loti', '4C'), 'LTL' => array('Lithuanian Litas', '4c, 74'), 'LVL' => array('Latvian Lats', '4c, 73'), 'MAD' => array('Moroccan Dirham', '62F, 2E, 645, 2E'), 'MDL' => array('Moldovan Leu', '6C, 65, 69'), 'MGA' => array('Malagasy Ariary', '41, 72'), 'MKD' => array('Macedonian Denar', '434, 435, 43d'), 'MNT' => array('Mongolian Tögrög', '20ae'), 'MOP' => array('Macanese Pataca', '4D, 4F, 50, 24'), 'MRO' => array('Mauritanian Ouguiya', '55, 4D'), 'MUR' => array('Mauritian Rupee', '20a8'), 'MVR' => array('Maldivian Rufiyaa', '52, 66'), 'MWK' => array('Malawian Kwacha', '4D, 4B'), 'MXN' => array('Mexican Peso', '24'), 'MYR' => array('Malaysian Ringgit', '52, 4d'), 'MZN' => array('Mozambican Metical', '4d, 54'), 'NAD' => array('Namibian Dollar', '24'), 'NGN' => array('Nigerian Naira', '20a6'), 'NIO' => array('Nicaraguan Córdoba', '43, 24'), 'NOK' => array('Norwegian Krone', '6b, 72'), 'NPR' => array('Nepalese Rupee', '20a8'), 'NZD' => array('New Zealand Dollar', '24'), 'PAB' => array('Panamanian Balboa', '42, 2f, 2e'), 'PEN' => array('Peruvian Nuevo Sol', '53, 2f, 2e'), 'PGK' => array('Papua New Guinean Kina', '4B'), 'PHP' => array('Philippine Peso', '20b1'), 'PKR' => array('Pakistani Rupee', '20a8'), 'PLN' => array('Polish Złoty', '7a, 142'), 'PYG' => array('Paraguayan Guaraní', '47, 73'), 'QAR' => array('Qatari Riyal', 'fdfc'), 'RON' => array('Romanian Leu', '6c, 65, 69'), 'RSD' => array('Serbian Dinar', '414, 438, 43d, 2e'), 'RUB' => array('Russian Ruble', '440, 443, 431'), 'RWF' => array('Rwandan Franc', '52, 20A3'), 'SAR' => array('Saudi Riyal', 'fdfc'), 'SBD' => array('Solomon Islands Dollar', '24'), 'SCR' => array('Seychellois Rupee', '20a8'), 'SEK' => array('Swedish Krona', '6b, 72'), 'SGD' => array('Singapore Dollar', '24'), 'SHP' => array('Saint Helenian Pound', 'a3'), 'SLL' => array('Sierra Leonean Leone', '4C, 65'), 'SOS' => array('Somali Shilling', '53'), 'SRD' => array('Surinamese Dollar', '24'), 'STD' => array('São Tomé and Príncipe Dobra', '44, 62'), 'SVC' => array('Salvadoran Colón', '24'), 'SZL' => array('Swazi Lilangeni', '45'), 'THB' => array('Thai Baht', 'e3f'), 'TJS' => array('Tajikistani Somoni', '73, 6F, 6D, 6F, 6E, 69'), 'TOP' => array('Tongan Paʻanga', '54, 24'), 'TRY' => array('Turkish Lira', '20BA'), 'TTD' => array('Trinidad and Tobago Dollar', '54, 54, 24'), 'TWD' => array('New Taiwan Dollar', '4e, 54, 24'), 'TZS' => array('Tanzanian Shilling', '78, 2F, 79'), 'UAH' => array('Ukrainian Hryvnia', '20b4'), 'UGX' => array('Ugandan Shilling', '55, 53, 68'), 'USD' => array('United States Dollar', '24'), 'UYU' => array('Uruguayan Peso', '24, 55'), 'UZS' => array('Uzbekistani Som', '43b, 432'), 'VND' => array('Vietnamese Đồng', '20ab'), 'VUV' => array('Vanuatu Vatu', '56, 54'), 'WST' => array('Samoan Tala', '24'), 'XAF' => array('Central African Cfa Franc', '46, 43, 46, 41'), 'XCD' => array('East Caribbean Dollar', '24'), 'XOF' => array('West African Cfa Franc', '43, 46, 41'), 'XPF' => array('Cfp Franc', '46'), 'YER' => array('Yemeni Rial', 'fdfc'), 'ZAR' => array('South African Rand', '52'), 'ZMW' => array('Zambian Kwacha', '4B'));
    }
}
//register the gateway
psts_register_gateway('ProSites_Gateway_Stripe', __('Stripe', 'psts'), __('Stripe handles everything, including storing cards, subscriptions, and direct payouts to your bank account.', 'psts'));
        }
        $blog_meta['evidence'][$transaction_id] = $evidence;
        ProSites_Helper_ProSite::update_prosite_meta($blog_id, $blog_meta);
    }
    /**
    * Return amount after applying tax, or tax rate
    *
    *@param $tax_object
    * @param $amt
    * @param bool $return_tx_rate
    *
    * @return mixed
    */
    private static function calculate_tax($tax_object, $amt, $return_tx_amt = false)
    {
        if (empty($tax_object) || empty($amt) || $amt == 0 || !$tax_object->apply_tax) {
            return $return_tx_amt ? 0 : $amt;
        }
        $tax_amt = $amt * $tax_object->tax_rate;
        $tax_amt = !empty($tax_amt) ? round($tax_amt, 2) : $tax_amt;
        $amt = $amt + $tax_amt;
        if (!$return_tx_amt) {
            return $amt;
        } else {
            return $tax_amt;
        }
    }
}
//register the gateway
psts_register_gateway('ProSites_Gateway_PayPalExpressPro', __('Paypal Express/Pro', 'psts'), __('Express Checkout is PayPal\'s premier checkout solution, which streamlines the checkout process for buyers and keeps them on your site after making a purchase. Enabling the optional PayPal Pro allows you to seamlessly accept credit cards on your site, and gives you the most professional look with a widely accepted payment method.', 'psts'));
            $message = apply_filters('prosites_manual_payment_email_body', implode("\n", $message_parts) . "\n", $message_parts, $message_fields);
            wp_mail($psts->get_setting('mp_email', get_site_option("admin_email")), $subject, $message);
            add_action('prosites_manual_payment_email_sent', $message, $message_parts, $message_fields);
            ProSites_Helper_Session::session(array('new_blog_details', 'reserved_message'), __('Manual payment request submitted.', 'psts'));
            // Payment pending...
            ProSites_Helper_Session::session(array('new_blog_details', 'manual_submitted'), true);
        }
    }
    public static function process_on_render()
    {
        return true;
    }
    public static function get_existing_user_information($blog_id, $domain, $get_all = true)
    {
        global $psts;
        $args = array();
        $img_base = $psts->plugin_url . 'images/';
        $trialing = ProSites_Helper_Registration::is_trial($blog_id);
        if ($trialing) {
            $args['trial'] = '<div id="psts-general-error" class="psts-warning">' . __('You are still within your trial period. Once your trial finishes your account will be automatically charged.', 'psts') . '</div>';
        }
        // Pending information
        if (!empty($blog_id) && 1 == get_blog_option($blog_id, 'psts_stripe_waiting')) {
            $args['pending'] = '<div id="psts-general-error" class="psts-warning">' . __('There are pending changes to your account. This message will disappear once these pending changes are completed.', 'psts') . '</div>';
        }
        return empty($content) ? array() : $content;
    }
}
//register the gateway
psts_register_gateway('ProSites_Gateway_Manual', __('Manual Payments', 'psts'), __('Record payments manually, such as by Cash, Check, EFT, or an unsupported gateway.', 'psts'));