HEX
Server: Apache
System: Linux wyse1.wyseservers.com 4.18.0-553.124.4.el8_10.x86_64 #1 SMP Fri May 15 04:14:14 EDT 2026 x86_64
User: kochikidswysewor (1061)
PHP: 8.3.33
Disabled: NONE
Upload Files
File: /home/kochikidswysewor/www/wp-content/plugins/cmsmasters-donations/cmsmasters-donations.php
<?php 
/*
Plugin Name: CMSMasters Donations
Plugin URI: http://cmsmasters.net/
Description: CMSMasters Donations created by <a href="http://cmsmasters.net/" title="CMSMasters">CMSMasters</a> team. This plugin creates custom post type that allows you to collect donations using paypal in new <a href="http://themeforest.net/user/cmsmasters/portfolio" title="cmsmasters">cmsmasters</a> WordPress themes.
Version: 1.3.8
Author: cmsmasters
Author URI: http://cmsmasters.net/
*/

/*  Copyright 2014 CMSMasters (email : cmsmstrs@gmail.com). All Rights Reserved.
	
	This software is distributed exclusively as appendant 
	to Wordpress themes, created by CMSMasters studio and 
	should be used in strict compliance to the terms, 
	listed in the License Terms & Conditions included 
	in software archive.
	
	If your archive does not include this file, 
	you may find the license text by url 
	http://cmsmasters.net/files/license/cmsmasters-donations/license.txt 
	or contact CMSMasters Studio at email 
	copyright.cmsmasters@gmail.com 
	about this.
	
	Please note, that any usage of this software, that 
	contradicts the license terms is a subject to legal pursue 
	and will result copyright reclaim and damage withdrawal.
*/


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


class Cmsmasters_Donations {
	public function __construct() {
		define('CMSMASTERS_DONATIONS_VERSION', '1.3.8');
		
		define('CMSMASTERS_DONATIONS_FILE', __FILE__);
		
		$cmsmasters_active_theme = get_option('cmsmasters_active_theme') ? get_option('cmsmasters_active_theme') : '';
		
		define('CMSMASTERS_DONATIONS_THEME_STYLE', (get_option('cmsmasters_' . $cmsmasters_active_theme . '_theme_style') ? get_option('cmsmasters_' . $cmsmasters_active_theme . '_theme_style') : ''));
		
		define('CMSMASTERS_DONATIONS_NAME', plugin_basename(CMSMASTERS_DONATIONS_FILE));
		
		define('CMSMASTERS_DONATIONS_PATH', plugin_dir_path(CMSMASTERS_DONATIONS_FILE));
		
		define('CMSMASTERS_DONATIONS_URL', plugin_dir_url(CMSMASTERS_DONATIONS_FILE));
		
		define('CMSMASTERS_DONATIONS_ACTIVE_THEME', get_option('cmsmasters_active_theme'));
		
		define('CMSMASTERS_DONATIONS_THEME_SHORTCODES_DIR', 'cmsmasters-donations/cmsmasters-framework/theme-style' . CMSMASTERS_DONATIONS_THEME_STYLE . '/cmsmasters-c-c/shortcodes');
		
		define('CMSMASTERS_DONATIONS_THEME_TEMPLATES_DIR', 'cmsmasters-donations/cmsmasters-framework/theme-style' . CMSMASTERS_DONATIONS_THEME_STYLE . '/templates');
		
		
		define('CMSMASTERS_DONATIONS_FRAMEWORK', CMSMASTERS_DONATIONS_PATH . 'framework/');
		
		define('CMSMASTERS_DONATIONS_ADMIN', CMSMASTERS_DONATIONS_FRAMEWORK . 'admin/');
		
		define('CMSMASTERS_DONATIONS_FUNCTION', CMSMASTERS_DONATIONS_FRAMEWORK . 'function/');
		
		define('CMSMASTERS_DONATIONS_POSTTYPE', CMSMASTERS_DONATIONS_FRAMEWORK . 'posttype/');
		
		define('CMSMASTERS_DONATIONS_TEMPLATE', CMSMASTERS_DONATIONS_FRAMEWORK . 'template/');
		
		
		define('CMSMASTERS_DONATIONS_INC', CMSMASTERS_DONATIONS_PATH . 'inc/');
		
		define('CMSMASTERS_DONATIONS_FORMS', CMSMASTERS_DONATIONS_INC . 'forms/');
		
		define('CMSMASTERS_DONATIONS_GATEWAYS', CMSMASTERS_DONATIONS_INC . 'gateways/');
		
		
		if (is_admin()) {
			require_once(CMSMASTERS_DONATIONS_ADMIN . 'cmsmasters-donations-settings.php');
		}
		
		
		require_once(CMSMASTERS_DONATIONS_ADMIN . 'cmsmasters-donations-theme-settings-filter.php');
		
		require_once(CMSMASTERS_DONATIONS_ADMIN . 'cmsmasters-donations-theme-options-filter.php');
		
		
		require_once(CMSMASTERS_DONATIONS_POSTTYPE . 'cmsmasters-campaigns-posttype.php');
		
		require_once(CMSMASTERS_DONATIONS_POSTTYPE . 'cmsmasters-donations-posttype.php');
		
		
		require_once(CMSMASTERS_DONATIONS_FUNCTION . 'cmsmasters-donations-template-function.php');
		
		require_once(CMSMASTERS_DONATIONS_FUNCTION . 'cmsmasters-donations-shortcode-function.php');
		
		require_once(CMSMASTERS_DONATIONS_FUNCTION . 'cmsmasters-donations-form-function.php');
		
		
		require_once(CMSMASTERS_DONATIONS_INC . 'cmsmasters-donations-forms.php');
		
		require_once(CMSMASTERS_DONATIONS_INC . 'cmsmasters-donations-emails.php');
		
		
		require_once(CMSMASTERS_DONATIONS_INC . 'cmsmasters-donations-api.php');
		
		require_once(CMSMASTERS_DONATIONS_INC . 'cmsmasters-donations-payments.php');
		
		
		add_action('admin_enqueue_scripts', array($this, 'cmsmasters_donations_admin_scripts'));
		
		add_action('wp_enqueue_scripts', array($this, 'cmsmasters_donations_frontend_scripts'));
		
		add_action('admin_footer', array($this, 'cmsmasters_donations_shortcodes_init'));
		
		add_action('admin_init', array($this, 'cmsmasters_donations_compatibility'));
		
		
		register_activation_hook(CMSMASTERS_DONATIONS_FILE, array($this, 'cmsmasters_donations_activate'));
		
		register_deactivation_hook(CMSMASTERS_DONATIONS_FILE, array($this, 'cmsmasters_donations_deactivate'));
		
		
		add_filter('plugin_action_links_' . plugin_basename(CMSMASTERS_DONATIONS_FILE), array($this, 'cmsmasters_donations_action_links'));
		
		
		// Load Plugin Local File
		load_plugin_textdomain('cmsmasters-donations', false, dirname(plugin_basename(CMSMASTERS_DONATIONS_FILE)) . '/languages/');
	}
	
	
	public function cmsmasters_donations_admin_scripts() {
		global $pagenow;
		
		
		wp_enqueue_script('cmsmasters-donations-settings-toggle', CMSMASTERS_DONATIONS_URL . 'js/jquery.cmsmastersDonations-settings-toggle.js', array('jquery'), '1.0.0', true);
		
		wp_localize_script('cmsmasters-donations-settings-toggle', 'cmsmasters_donations_settings', array( 
			'shortname' => 	CMSMASTERS_DONATIONS_ACTIVE_THEME 
		));
		
		
		$screen = get_current_screen();
		
		if ($screen->id  == 'settings_page_cmsmasters-donations-settings') {
			wp_enqueue_media();
		}
		
		
		if ( 
			$pagenow == 'post-new.php' || 
			($pagenow == 'post.php' && isset($_GET['post']) && get_post_type($_GET['post']) != 'attachment') 
		) {
			wp_enqueue_script('cmsmasters-donations-c-c-shortcodes-extend', CMSMASTERS_DONATIONS_URL . 'js/jquery.cmsmastersDonations-c-c-shortcodes-extend.js', array('cmsmasters_composer_shortcodes_js'), '1.0.0', true);
			
			wp_localize_script('cmsmasters-donations-c-c-shortcodes-extend', 'cmsmasters_donations_shortcodes', array( 
				'choice_campaign' => 								__('Campaign Name', 'cmsmasters-donations'),
				'choice_rest_amount' => 							__('Amount of donations still needed', 'cmsmasters-donations'),
				'choice_donated_percent' => 						__('Progress percent', 'cmsmasters-donations'),
				'choice_donation_but' => 							__('Donation button', 'cmsmasters-donations'),
				'button_field_type_title' =>						__('Button Type', 'cmsmasters-donations'),
				'choice_button_type_regular' =>						__('Regular Button', 'cmsmasters-donations'),
				'choice_button_type_donation' =>					__('Donation Button', 'cmsmasters-donations'),
				'button_field_campaign_title' =>					__('Donation Campaign', 'cmsmasters-donations'),
				
				/* Donations */
				'donations_title' =>								__('Donations', 'cmsmasters-donations'), 
				'donations_field_donations_number_title' =>			__('Number of Donations to Show', 'cmsmasters-donations'), 
				'donations_field_donations_number_descr_note' =>	__('Set 0 to show all donations', 'cmsmasters-donations'), 
				'donations_field_campaigns_title' =>				__('Campaigns', 'cmsmasters-donations'), 
				'donations_field_campaigns_descr' =>				__('Campaigns to show donations from', 'cmsmasters-donations'), 
				'donations_field_campaigns_descr_note' =>			__('Donations from all campaigns will be shown if none is selected', 'cmsmasters-donations'), 
				'donations_field_postsmeta_title' =>				__('Donations Meta to Display', 'cmsmasters-donations'), 
				
				/* Featured Campaign */
				'featured_campaign_title' =>						__('Featured Campaign', 'cmsmasters-donations'), 
				'featured_campaign_field_campaign_title' =>			__('Campaign to Show', 'cmsmasters-donations'), 
				'featured_campaign_field_postsmeta_title' =>		__('Campaign Meta to Display', 'cmsmasters-donations'), 
				
				/* Campaigns */
				'campaigns_title' =>								__('Campaigns', 'cmsmasters-donations'), 
				'campaigns_field_campaigns_ids_title' =>			__('Campaigns', 'cmsmasters-donations'), 
				'campaigns_field_campaigns_ids_descr' =>			__('Select one or several campaigns', 'cmsmasters-donations'), 
				'campaigns_field_campaigns_ids_descr_note' =>		__('All campaigns will be shown if none is selected', 'cmsmasters-donations'), 
				'campaigns_field_campaigns_categories_title' =>		__('Categories', 'cmsmasters-donations'), 
				'campaigns_field_campaigns_categories_descr' =>		__('Select one or several categories to show campaigns from', 'cmsmasters-donations'), 
				'campaigns_field_campaigns_categories_note' =>		__('Can be used only if \'Order By\' parameter is set to \'Date\' or \'Random\'. Select none to show all', 'cmsmasters-donations'), 
				'campaigns_field_campaigns_number_title' =>			__('Number of Campaigns to Show', 'cmsmasters-donations'), 
				'campaigns_field_campaigns_number_descr_note' =>	__('Set 0 to show all campaigns', 'cmsmasters-donations'), 
				'campaigns_field_pausetime_descr' =>				__('Enter your campaigns slider pause time', 'cmsmasters-donations'), 
				'campaigns_field_campaigns_metadata_title' =>		__('Campaigns Meta to Display', 'cmsmasters-donations'), 
			));
		}
	}
	
	
	public function cmsmasters_donations_frontend_scripts() {
		wp_register_style('cmsmasters-donations-form', CMSMASTERS_DONATIONS_URL . 'css/cmsmasters-donations-form.css', array(), CMSMASTERS_DONATIONS_VERSION, 'screen');
		
		wp_register_style('cmsmasters-donations-form-rtl', CMSMASTERS_DONATIONS_URL . 'css/cmsmasters-donations-form-rtl.css', array(), CMSMASTERS_DONATIONS_VERSION, 'screen');
		
		
		wp_register_script('cmsmastersValidation', CMSMASTERS_DONATIONS_URL . 'js/jquery.validationEngine.min.js', array('jquery'), '2.6.2', true);
		
		wp_register_script('cmsmastersValidationLang', CMSMASTERS_DONATIONS_URL . 'js/jquery.validationEngine-lang.js', array('jquery', 'cmsmastersValidation'), CMSMASTERS_DONATIONS_VERSION, true);
		
		wp_localize_script('cmsmastersValidationLang', 'cmsmasters_ve_lang', array( 
			'required' => 			__('* This field is required', 'cmsmasters-donations'), 
			'select_option' => 		__('* Please select an option', 'cmsmasters-donations'), 
			'required_checkbox' => 	__('* This checkbox is required', 'cmsmasters-donations'), 
			'min' => 				__('* Minimum', 'cmsmasters-donations'), 
			'max' => 				__('* Maximum', 'cmsmasters-donations'), 
			'allowed' => 			__(' characters allowed', 'cmsmasters-donations'), 
			'invalid_email' => 		__('* Invalid email address', 'cmsmasters-donations'), 
			'invalid_number' => 	__('* Invalid number', 'cmsmasters-donations'), 
			'invalid_url' => 		__('* Invalid URL', 'cmsmasters-donations'), 
			'numbers_spaces' => 	__('* Numbers and spaces only', 'cmsmasters-donations'), 
			'letters_spaces' => 	__('* Letters and spaces only', 'cmsmasters-donations') 
		));
		
		
		wp_register_script('cmsmasters-donations-form-script', CMSMASTERS_DONATIONS_URL . 'js/jquery.cmsmastersDonations-form.js', array('jquery', 'cmsmastersValidation', 'cmsmastersValidationLang'), CMSMASTERS_DONATIONS_VERSION, true);
		
		wp_localize_script('cmsmasters-donations-form-script', 'cmsmasters_donations_form_script_params', array( 
			'gateway' => 	(get_option('cmsmasters_donations_gateway') == 'stripe') ? 'stripe' : 'paypal', 
			'confirm' => 	(get_option('cmsmasters_confirm_donation') == 1) ? true : false 
		) );
	}
	
	
	// Shortcodes Init
	public function cmsmasters_donations_shortcodes_init() {
		global $pagenow;
		
		
		if ( 
			is_admin() && 
			$pagenow == 'post-new.php' || 
			($pagenow == 'post.php' && isset($_GET['post']) && get_post_type($_GET['post']) != 'attachment') 
		) {
			if (wp_script_is('cmsmasters_content_composer_js', 'queue') && wp_script_is('cmsmasters_composer_lightbox_js', 'queue')) {
				$this->cmsmasters_donations_campaign_ids();
				
				$this->cmsmasters_donations_donation_but_campaign_ids();
				
				$this->cmsmasters_donations_campaign_categories();
			}
		}
	}
	
	
	// Campaign IDs
	public function cmsmasters_donations_campaign_ids() {
		$campaign_ids = get_posts(array(
			'numberposts' => -1, 
			'post_type' => 'campaign'
		));
		
		
		$out = "\n" . '<script type="text/javascript"> ' . "\n" . 
		'/* <![CDATA[ */' . "\n\t" . 
			'function cmsmasters_composer_campaign_ids() { ' . "\n\t\t" . 
				'return { ' . "\n";
		
		
		if (!empty($campaign_ids)) {
			foreach ($campaign_ids as $campaign_id) {
				$out .= "\t\t\t\"" . $campaign_id->ID . "\" : \"" . esc_html($campaign_id->post_title) . "\", \n";
			}
			
			
			$out = substr($out, 0, -3);
		}
		
		
		$out .= "\n\t\t" . '}; ' . "\n\t" . 
			'} ' . "\n" . 
		'/* ]]> */' . "\n" . 
		'</script>' . "\n\n";
		
		
		echo $out;
	}
	
	
	// Donation Button Campaign IDs
	public function cmsmasters_donations_donation_but_campaign_ids() {
		$campaign_ids = get_posts(array(
			'numberposts' => -1, 
			'post_type' => 'campaign'
		));
		
		
		$out = "\n" . '<script type="text/javascript"> ' . "\n" . 
		'/* <![CDATA[ */' . "\n\t" . 
			'function cmsmasters_composer_donation_but_campaign_ids() { ' . "\n\t\t" . 
				'return { ' . "\n" . 
					"\t\t\t\"\" : \"" . esc_html__('No specific campaign', 'cmsmasters_content_composer') . "\", \n";
		
		
		if (!empty($campaign_ids)) {
			foreach ($campaign_ids as $campaign_id) {
				$out .= "\t\t\t\"" . $campaign_id->ID . "\" : \"" . esc_html($campaign_id->post_title) . "\", \n";
			}
			
			
			$out = substr($out, 0, -3);
		}
		
		
		$out .= "\n\t\t" . '}; ' . "\n\t" . 
			'} ' . "\n" . 
		'/* ]]> */' . "\n" . 
		'</script>' . "\n\n";
		
		
		echo $out;
	}
	
	
	// Campaign Categories
	public function cmsmasters_donations_campaign_categories() {
		$categories = get_terms('cp-categs', array( 
			'hide_empty' => 0 
		));
		
		
		$out = "\n" . '<script type="text/javascript"> ' . "\n" . 
		'/* <![CDATA[ */' . "\n\t" . 
			'function cmsmasters_composer_campaign_categories() { ' . "\n\t\t" . 
				'return { ' . "\n";
		
		
		if (!empty($categories)) {
			foreach ($categories as $category) {
				$out .= "\t\t\t\"" . $category->slug . "\" : \"" . esc_html($category->name) . "\", \n";
			}
			
			
			$out = substr($out, 0, -3);
		}
		
		
		$out .= "\n\t\t" . '}; ' . "\n\t" . 
			'} ' . "\n" . 
		'/* ]]> */' . "\n" . 
		'</script>' . "\n\n";
		
		
		echo $out;
	}
	
	
	public function cmsmasters_donations_action_links($links) {
		$settings_link = '<a href="' . get_admin_url(null, 'options-general.php?page=cmsmasters-donations-settings') . '" title="' . __('Donations Settings', 'cmsmasters-donations') . '">' . __('Settings', 'cmsmasters-donations') . '</a>';
		
		
		array_unshift($links, $settings_link);
		
		
		return $links;
	}
	
	
	public function cmsmasters_donations_activate() {
		$this->cmsmasters_donations_activation_compatibility();
		
		
		if (get_option('cmsmasters_active_donations') != CMSMASTERS_DONATIONS_VERSION) {
			add_option('cmsmasters_active_donations', CMSMASTERS_DONATIONS_VERSION, '', 'yes');
		}
		
		
		flush_rewrite_rules();
	}
	
	
	public function cmsmasters_donations_deactivate() {
		flush_rewrite_rules();
	}
	
	
	public function cmsmasters_donations_activation_compatibility() {
		if ( 
			!defined('CMSMASTERS_DONATIONS') || 
			(defined('CMSMASTERS_DONATIONS') && !CMSMASTERS_DONATIONS) 
		) {
			deactivate_plugins(CMSMASTERS_DONATIONS_NAME);
			
			
			wp_die( 
				__("Your theme doesn't support CMSMasters Donations plugin. Please use appropriate CMSMasters theme.", 'cmsmasters-donations'), 
				__("Error!", 'cmsmasters-donations'), 
				array( 
					'back_link' => 	true 
				) 
			);
		}
	}
	
	
	public function cmsmasters_donations_compatibility() {
		if ( 
			!defined('CMSMASTERS_DONATIONS') || 
			(defined('CMSMASTERS_DONATIONS') && !CMSMASTERS_DONATIONS) 
		) {
			if (is_plugin_active(CMSMASTERS_DONATIONS_NAME)) {
				deactivate_plugins(CMSMASTERS_DONATIONS_NAME);
				
				
				add_action('admin_notices', array($this, 'cmsmasters_donations_compatibility_warning'));
			}
		}
	}
	
	
	public function cmsmasters_donations_compatibility_warning() {
		echo "<div class=\"notice notice-warning is-dismissible\">
			<p><strong>" . __("CMSMasters Donations plugin was deactivated, because your theme doesn't support it. Please use appropriate CMSMasters theme.", 'cmsmasters-donations') . "</strong></p>
		</div>";
	}
}

$GLOBALS['cmsmasters_donations'] = new Cmsmasters_Donations();