• اطلاعیه ها

    • Saeed Fard

      برگزاری میتاپ وردپرسی   14/08/96

      بعد از اولین دوره همایش وردپرس در ایران اگر پیگیر اخبار وردپرس بوده باشید، حتما خبر برگزاری چندین میتاپ و جلسه متعدد وردپرسی را شنیده‌اید، یکی از بحث‌های اصلی که محور اصلی این میتاپ‌ها بوده است برگزاری وردکمپ بود که به طور جدی دنبال می‌شود. این میتاپ‌ها و جلسات توسط جمعی از فعلان حوزه وردپرس در کنار وردپرس‌پارسی برگزار می‌شد و مسائل مربوط به این حیطه و از جمله وردکمپ مورد بحث قرار می‌گرفت. این بار با رایزنی‌هایی که با تیم اصلی وردپرس داشتیم در بخش دوم این رویدادها قصد داریم که میتاپ‌ها و جلسات وردپرسی را به صورت آزاد برگزار کنیم تا تمامی علاقه‌مندان و دوست‌داران وردپرس فرصت حضور داشته باشند و با گردهمایی، جامعه کاملتری از دوست داران وردپرس بسازیم و از تجربیات یکدیگر استفاده کنیم.   بدیهی است که این رویدادها با رویکرد مثبت در جهت سود رسانی به جامعه وردپرس و افراد حاضر در آن برگزار می‌شود و برای تمامی علاقه‌مندان به وردپرس است. پس اگر یک کاربر معمولی وردپرس یا یک توسعه دهنده هستید می‌توانید در این رویدادها شرکت کنید. ما در ملاقات‌هایمان از موارد مختلف و کاربردی وردپرس صحبت می‌کنیم و علاقمند به توسعه هر چه بیشتر وردپرس در ایران هستیم. ما وردپرس را دوست داریم. عضویت در این گروه برای همه افرادی که مایل به پیوستن هستند بدون در نظرگرفتن توانایی‌ها، مهارت‌ها، وضعیت مالی و یا معیارهای دیگر باز و رایگان است. فضای میتاپ‌ها و جلسات ما دوستانه و آزادنه و دور از هرگونه تبعیض و رفتارهای زننده است. بر این اساس از تمامی دوستانی که علاقه‌مند به شرکت در میتاپ‌های وردپرس هستند دعوت می‌شود تا از طریق لینک زیر در سایت میتاپ اقدام به ثبت‌نام کنند و منتظر خبرهای برگزاری جلسات در آینده باشند . لینک ثبت نام و عضویت : https://www.meetup.com/Iran-WordPress-Meetup    
    • Saeed Fard

      نسخه جدید وردپرس پارسی رونمایی شد   05/09/96

      در پنجمین سال فعالیت از وردپرس پارسی و بعد از ارائه خدمات و سرویس‌های متفاوت به جامعه وردپرس ، برآن شدیم که نسخه جدید سایت وردپرس‌پارسی را بر اساس نیازها و خدمات جدیدی که قرار است ارائه شود طراحی و رونمایی کنیم ، از این جهت امروز یک ورژن از نسخه جدید رونمایی شد. در ادامه به معرفی بخش‌های مختلف سایت می‌پردازیم.     در دوره فعالیت گروه وردپرس‌پارسی بیش از 13 افزونه مختلف به صورت رایگان از طرف گروه برای وردپرس نوشته و منتشر شد که در مجموع دارای 100هزار نصب فعال روی سایت‌های وردپرسی است و 500هزاربار از مخزن پلاگین‌های وردپرس دانلود شده‌اند. به همین دلیل قسمت اول وب‌سایت مختص معرفی افزونه‌های گروه وردپرس‌پارسی طراحی شده است که در آن لیستی کامل از افزونه‌ها به همراه توضیحات در اختیار کاربران است . روند تولید افزونه‌های رایگان در جهت توسعه و بومی‌سازی بیشتر وردپرس از طرف وردپرس پارسی ادامه دارد و بزودی افزونه‌های دیگری به آرشیو اضافه خواند شد.   گروه وردپرس‌پارسی که تا به این‌جا تمرکز بیشتر خود را روی پشتیبانی رایگان از وردپرس گذاشته بود تا مشکلات کاربران وردپرس فارسی را حل کند که حاصل این فعالیت 18 هزار کاربر در انجمن با 43 هزار موضوع و 255 هزار سوال جواب است، قرار است من بعد در عرصه آموزش وردپرس وارد شود و از تخصص اعزای گروه در این حوزه نیز استفاده کند تا مرجعی کامل، اصولی و درست برای آموزش وردپرس ایجاد شود. قسمت دوم وب‌سایت مربوط به مقالات و آموزش‌هایی است که روی وردپرس پارسی از طرف اعضای آن ارسال می‌شود.   در دنیای وردپرس اتفاقات مختلفی در حال روی دادن است که دانستن آن‌ها میتونه برای ما جالب و جذاب باشه، برگزاری وردکمپ‌ها، معرفی سرویس‌ها و خدمات جدید و ... که از جمله اخبار مهم در این حوزه می‌توان برگزاری اولین همایش وردپرس ایران در سال 93 و همایش‌های دیگر مربوط به وردپرس و معرفی سیاره وردپرس و همینطور خبر برگزاری میتاپ‌های وردپرسی در ایران اشاره کرد ، در قسمت آخر وب‌سایت به معرفی موارد این چنینی پرداخته می‌شود و همینطور گزارش‌های مرتب از فعالیت‌ها، میتاپ‌ها و رویدادهای وردپرسی در آن ارائه می‌شود .   در ادامه این فعالیت‌ها بزودی شاهد اخبار جدیدی از وردپرس‌پارسی خواهید بود. شما نیز به عنوان یکی از کاربران این جامعه وردپرسی می‌توانید ما را در توسعه هر چه بیشتر وردپرس یاری کنید. لینک مستقیم خبر : http://wp-parsi.com/wpparsi-new-version  
ilya20

مشکل با افزونه Payline VIP & File Download

7 پست در این موضوع قرار دارد

با سلام و درود خدمت دوستان ...

بنده با افزونه ذکر شده مشکل دارم ... 

 

اینکه کاربران vip نمیتونن فایلای حجم بالا رو  دانلود کنه ... وقتی روی دانلود کلیک زده میشه صفحه سفید میشه و عکس العملی نشون نمیده ...

فایلای کم حجم هیچ مشکلی نداره و راحت دانلود میشه ...

این مشکل رو با اقای اخوندی هم در میون گذاشتم جواب ندادن ....

این افزونه فکر کنم لینک دایرکتوری اصلی رو عوض میکنه و دایرکتوری خواصی رو به کاربر vip تحویل میده و فکر کنم به خاطر بالا بودن حجم فایل نمیتونه براش دایرکتوری بسازه ...

اگه دایرکتوری رو تغییر هم نده برای ما مشکلی نداره فقط فایلای ما بالاتر از 1 گیگابایت هستش ...

راهنمایی لطفا ...

 

 

 

0

به اشتراک گذاری این پست


لینک به پست

درود...این افزونه ساده هستش و بنابراین طبیعی هستش که نمی تونه فایل بالای ۲۰۰ مگ پشتیبانی کنه...

بهتره اگه سایت فیلم دارید از اسکریپت VIP دانلود استفاده کنید...

1

به اشتراک گذاری این پست


لینک به پست

با سلام و احترام کاربر گرامی این مشکل از سمت سرور می باشد و باید تغییرات از سمت سرور انجام شود

1

به اشتراک گذاری این پست


لینک به پست
در 3 ساعت قبل، a2h گفته است :

با سلام و احترام کاربر گرامی این مشکل از سمت سرور می باشد و باید تغییرات از سمت سرور انجام شود

درود دوباره ...

 

فکر نکنم مشکل از سرور باشه سرور ما با رم 16 گیگ و هارد 6 ترا هستش ...

 

با خود اخوندی صحبت کردم میگن به علت اینکه افزونه لینک دایرکتوری رو به خاطر تغییر میده به همین دلیل به سرور فشار میاره و نمیتونه دانلود با حجم بالا ارایه بده ...

نیازی هم نیست دایرکتوری رو تغییر بده اگه میداد که خوب بود و اگه نمیده که به همینم قانعیم ...

از دوستان میدونه میتونم قابلیت تغییر ادرس دایرکتوری برای وی ای پی ها رو اوکی کنم ؟ لینک مستقیم رو نشون بده ؟

ادرس تست :

http://support.gsm-developers.ir/nokia-x-rm-980-cooked/

یوزر تست :

ilya

پسورد :137412

 

کدهای فایل payline_func.php

<?php
include_once('func_shortcode.php');

function Payline_Vip_GET_CURL($addres)
{
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $addres);
	curl_setopt($ch, CURLOPT_POST, false);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
	$nnn = curl_exec($ch);
	return $nnn;
}

add_action('admin_enqueue_scripts', 'my_style_payline');
function my_style_payline() {
	$dir = plugin_dir_url(__FILE__).'style.css';
	wp_register_style( 'custom_payline_css',$dir);
    wp_enqueue_style( 'custom_payline_css' );
}
add_action('wp_login', 'when_login',10, 2);
function when_login($user_login, $user) 
{
	global $wpdb;	
	
	date_default_timezone_set("Asia/Tehran");
	$_Today=get_option('vip_today_time');
	$_Date=date("Y-m-d");
	
	$diff = abs(strtotime($_Date)-strtotime($_Today));
	$diff = $diff/(60*60*24);
	
	if($diff>=1)
	{
		update_option('vip_today_time',$_Date);
		$current_user=wp_get_current_user();
		$user_id=$current_user->ID;
		$Tuser = $wpdb->prefix . "users";
		$Tusermeta = $wpdb->prefix . "usermeta";
		$users = $wpdb->get_row("SELECT * FROM $Tuser" , ARRAY_A);
		foreach($users as $user)
		{
			$x=get_user_meta($user['ID'],'exp_per_day',true);
			if($x)
			{	
				update_user_meta($user['ID'],'extant_daily',$x);					
			}
		}
	}
}

PaylineFileDownload::init();
class PaylineFileDownload {
	protected static $currencies = array(
		'USD' => array('United States Dollar','$'),
		'AUD' => array('Australian Dollar','AUD$'),
		'BRL' => array('Brazilian Real','R$'),
		'GBP' => array('British Pound','&pound;'),
		'CAD' => array('Canadian Dollar','CAD$'),
		'CNY' => array('Chinese Yuan','&#20803;'),
		'DKK' => array('Danish Krone','kr.'),
		'EUR' => array('European Euro','&#8364;'),
		'HKD' => array('Hong Kong Dollar','HK$'),
		'HUF' => array('Hungarian Forint','Ft'),
		'INR' => array('Indian Rupee','INR'),
		'IDR' => array('Indonesian Rupiah','Rp'),
		'JPY' => array('Japanese Yen','&yen;'),
		'MXN' => array('Mexican Peso','MEX$'),
		'NZD' => array('New Zealand Dollar','NZ$'),
		'NOK' => array('Norwegian Kroner','kr'),
		'PLN' => array('Polish Zloty','zl.'),
		'RUB' => array('Russian Ruble','RUB'),
		'SAR' => array('Saudi Riyal','SR'),
		'SGD' => array('Singapore Dollar','SGD$'),
		'ZAR' => array('South African Rand','R'),
		'SEK' => array('Swedish Krona','kr'),
		'CHF' => array('Swiss Franc','CHF'),
		'THB' => array('Thai Bhat','&#3647;'),
		'TRY' => array('Turkish Lira','TRY'),
		'TWD' => array('Taiwan Dollar','TWD')
	);
	const VERSION = '1.3';
	const DB_VERSION = "1.0";
	public static function init() {
		
		$dir = plugin_dir_path(__FILE__);	
		register_activation_hook($dir.'payline_file_download.php', array(__CLASS__, 'install'));
//		register_activation_hook(__FILE__, array(__CLASS__, 'install'));
		// admin stuff
		add_action('admin_menu', array(__CLASS__, 'admin_menu'));
		add_action('admin_init', array(__CLASS__, 'admin_init'));
		// media buttons hook
		add_action('media_buttons_context', array(__CLASS__, 'media_button'));
		add_action('media_buttons_context', array(__CLASS__, 'vip_media_button'));
		add_action('media_buttons_context', array(__CLASS__, 'vip_data_button'));
		
		// insert form
		add_action('admin_footer', array(__CLASS__, 'add_pfd_form'));
		add_action('admin_footer', array(__CLASS__, 'add_linkdownload_vip_form'));
		add_action('admin_footer', array(__CLASS__, 'add_vip_data_form'));
		
		// listener for ipn activation
		add_action('template_redirect', array(__CLASS__, 'var_listener'));
		add_action('template_redirect', array(__CLASS__, 'vip_listener'));
		
		
		add_filter('query_vars', array(__CLASS__, 'register_vars'));
		//add_action('admin_menu', array(__CLASS__, 'add_meta_box'));
		
	}
	
	
	
	
	protected static function transactioncode($length = "") {
		$code = md5(uniqid(rand(), true));
		if ($length != "") return strtoupper(substr($code, 0, $length));
		else return strtoupper($code);
	}
	protected static function relative_time($ptime) {
		date_default_timezone_set("Asia/Tehran");
		$etime = time() - $ptime;
		if ($etime < 1) {
			return '0 seconds';
		}
		$a = array( 12 * 30 * 24 * 60 * 60  =>  'year',
					30 * 24 * 60 * 60       =>  'month',
					24 * 60 * 60            =>  'day',
					60 * 60                 =>  'hour',
					60                      =>  'minute',
					1                       =>  'second'
					);
		foreach ($a as $secs => $str) {
			$d = $etime / $secs;
			if ($d >= 1) {
				$r = round($d);
				return $r . ' ' . $str . ($r > 1 ? 's' : '');
			}
		}
	}
	
	
	
	
	public static function install() {
		global $wpdb;
		$message_default = <<<EOT
بابت خريد محصول [PRODUCT_NAME] تشکر مي کنيم! لينک دانلود در انتهاي  اين پيغام قرار گرفته. براي پيگيري هاي بعدي شماره تراکنش [TRANSACTION_ID] را يادداشت نماييد.
EOT;
		$message_default_nofile = <<<EOT
بابت خريد محصول [PRODUCT_NAME] تشکر مي کنيم! لينک دانلود در انتهاي  اين پيغام قرار گرفته. براي پيگيري هاي بعدي شماره تراکنش [TRANSACTION_ID] را يادداشت نماييد.
EOT;


		
		
		add_option("vip_message_email",'بابت خريد اشتراک [ACCOUNT_NAME] تشکر مي کنيم! براي پيگيري هاي بعدي شماره تراکنش [TRANSACTION_ID] را يادداشت نماييد.
' , '','yes');
		add_option("vip_message_novip","لینک دانلود برای کاربران vip می باشد. ثبت نام کنید و اشتراک vip بخرید",'','yes');
		
		add_option("vip_payline_api", "YOUR-API", '','yes');
		
		add_option("vip_payline_return_url", get_option("siteurl"), '','yes');
		date_default_timezone_set("Asia/Tehran");
		$inDate=date("Y-m-d");
		add_option("vip_today_time",$inDate);
		
		$table_name = $wpdb->prefix . "vip_accounts";
		if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
			$sql = "CREATE TABLE " . $table_name . " (
				id mediumint(9) NOT NULL AUTO_INCREMENT,
				name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
				descript VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
				cost bigint(11) NOT NULL,
				day int NOT NULL,
				per_day int NOT NULL,
				PRIMARY KEY id (id)
			);";
			require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
			dbDelta($sql);
		}
		
				
		
		$table_name = $wpdb->prefix . "vip_orders";
		if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
			$sql = "CREATE TABLE " . $table_name . " (
				id mediumint(9) NOT NULL AUTO_INCREMENT,
				idaccount mediumint(9) NOT NULL,
				iduser bigint(20) unsigned NOT NULL,
				order_code VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
				fulfilled mediumint(9) NOT NULL,
				cost bigint(11) NOT NULL,
				created_at bigint(11) DEFAULT '0' NOT NULL,
				PRIMARY KEY id (id)
			);";
			require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
			dbDelta($sql);
		}
		
		
		
		
		add_option("email_message", $message_default, '','yes');
		add_option("email_message_nofile", $message_default_nofile, '','yes');
		add_option("expire_links_after", 7, '','yes');
		
		add_option("paypal_direct", 0, '','yes');
		add_option("paypal_return_url", get_option("siteurl"), '','yes');
		$table_name = $wpdb->prefix . "pfd_products";
		if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
			$sql = "CREATE TABLE " . $table_name . " (
				id mediumint(9) NOT NULL AUTO_INCREMENT,
				name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
				file VARCHAR(255) NOT NULL,
				downloads bigint(11) NOT NULL,
				cost bigint(11) NOT NULL,
				created_at bigint(11) DEFAULT '0' NOT NULL,
				PRIMARY KEY id (id)
			);";
			require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
			dbDelta($sql);
		}
		$table_name = $wpdb->prefix . "pfd_orders";
		if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
			$sql = "CREATE TABLE " . $table_name . " (
				id mediumint(9) NOT NULL AUTO_INCREMENT,
				product_id mediumint(9) NOT NULL,
				order_code VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
				fulfilled mediumint(9) NOT NULL,
				cost bigint(11) NOT NULL,
				created_at bigint(11) DEFAULT '0' NOT NULL,
				PRIMARY KEY id (id)
			);";
			require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
			dbDelta($sql);
		}
		$table_name = $wpdb->prefix . "pfd_transactions";
		if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
			$sql = "CREATE TABLE " . $table_name . " (
				id mediumint(9) NOT NULL AUTO_INCREMENT,
				product_id mediumint(9) NOT NULL,
				order_id mediumint(9) NOT NULL,
				order_code VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
				protection_eligibility VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				address_status VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				payer_id VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				tax bigint(11) NULL,
				payment_date VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				payment_status VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				first_name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				last_name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				payer_status VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				business VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				address_name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				address_street VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				address_city VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				address_state VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				address_zip VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				address_country_code VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				address_country VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				quantity VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				verify_sign VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				payer_email VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				txn_id VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				payment_type VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				receiver_email VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				receiver_id VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci  NULL,
				txn_type VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				item_name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				mc_currency VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				item_number VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				residence_country VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				custom VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				receipt_id VARCHAR(255)  NULL,
				transaction_subject VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci NULL,
				payment_fee bigint(11) NOT NULL,
				payment_gross bigint(11) NOT NULL,
				created_at bigint(11) DEFAULT '0' NOT NULL,
				PRIMARY KEY id (id)
			);";
			require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
			dbDelta($sql);
		}
		
		
		$table_name = $wpdb->prefix . "pfd_transactions";
		$myTransactions = $wpdb->get_row("SELECT * FROM $table_name limit 1");
		if(!isset($myTransactions->mobile)){
			$wpdb->query("ALTER TABLE $table_name ADD mobile VARCHAR(255) NULL DEFAULT ' '");
		}
		
		add_option("pfd_db_version", self::DB_VERSION);
	}
	protected static function get_currency() {
		if (get_option('pfd_currency')) {
			$cc = get_option('pfd_currency');
		} else {
			$cc = "USD";
		}
		return $cc;
	}
	protected static function get_currency_symbol() {
		$cc = self::get_currency();
		return self::$currencies[$cc][1];
	}
	public static function validate_currency($currency) {
		if (!empty(self::$currencies[$currency]))
			return $currency;
		return 'USD';
	}
	public static function admin_init() {
		register_setting('vip_options', 'vip_message_email');
		register_setting('vip_options', 'vip_message_novip');
		register_setting('vip_options', 'vip_payline_api');
		register_setting('vip_options', 'vip_payline_return_url');
		
		register_setting('pfd_options', 'email_message');
		register_setting('pfd_options', 'email_message_nofile');
		register_setting('pfd_options', 'expire_links_after', 'intval');
		
		register_setting('pfd_options', 'paypal_direct', 'intval');
		register_setting('pfd_options', 'paypal_return_url');
		register_setting('pfd_options', 'pfd_currency', array(__CLASS__, 'validate_currency'));
	}
	public static function admin_menu() {
		add_menu_page( "فروشگاه", "فروشگاه", 'manage_options', 'payline-file-download', array(__CLASS__, 'admin_dashboard'),plugins_url("images/basket.png",__FILE__));
		add_submenu_page( 'payline-file-download', "محصولات", "محصولات", 'manage_options', "payline-file-download-products", array(__CLASS__, 'admin_products_router'));
		add_submenu_page( 'payline-file-download', "تنظیمات", "تنظيمات", 'manage_options', "paypal-file-download-settings", array(__CLASS__, 'admin_settings'));
		add_submenu_page( 'payline-file-download', "فروش ها", "فروش ها", 'manage_options', "paypal-file-download-transactions", array(__CLASS__,'admin_transactions'));
		add_menu_page( "اشتراک VIP", "اشتراک VIP", 'manage_options', 'payline-vip', array(__CLASS__, 'admin_dashboard'), plugins_url("images/vip.png",__FILE__));
		add_submenu_page( 'payline-vip', "اشتراک ها", "اشتراک ها", 'manage_options', "payline-vip-accounts", array(__CLASS__, 'admin_vip_router'));
		
		add_submenu_page( 'payline-vip', "تنظیمات", "تنظيمات", 'manage_options', "payline-vip-settings", array(__CLASS__, 'admin_settingsvip'));
		add_submenu_page( 'payline-vip', "کاربران VIP", "کاربران VIP", 'manage_options', "payline-vip-orders", array(__CLASS__,'admin_orders'));
		
		
	}
	public static function admin_products_router() {
		$action = '';
		if (!empty($_REQUEST['action'])) {
			$action = $_REQUEST['action'];
		}
		switch ($action) {
			case 'edit':
				return self::admin_products_edit();
				break;
			case 'delete':
				return self::admin_products_delete();
				break;
			case 'add':
				return self::admin_products_add();
				break;
			default:
				return self::admin_products();
		}
	}
	protected static function admin_products_edit() {
		global $wpdb;
		$table_name = $wpdb->prefix . "pfd_products";
		
		if (isset($_POST["product_name"])) {
			$name = $_POST["product_name"];
			$url = $_POST["product_url"];
			$cost = $_POST["product_cost"];
			$wpdb->update( $table_name, array('name' => $name, 'file' => $url, 'cost' => $cost), array('id' => $_GET["id"]), array( '%s', '%s', '%s'));
		}
		
		$product = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table_name WHERE id = %d",$_GET["id"]) , ARRAY_A, 0);
	?>
    
    
    <?php 
	echo'<div class="wrap">
		<h2>ويرايش محصول: '.$product['name'].'</h2>
		<a href="'.get_option('siteurl').'/wp-admin/admin.php?page=payline-file-download-products">&laquo; بازگشت به صفحه محصولات</a>
		<form action="'.get_option('siteurl').'/wp-admin/admin.php?page=payline-file-download-products&action=edit&id='.$_GET['id'].'" method="post">
		<table class="form-table">
			<tr valign="top">
				<th scope="row">نام محصول</th>
				<td><input type="text" name="product_name" style="width:250px;" value="'.str_replace('"','\"',$product["name"]).'" /></td>
			</tr>
			<tr valign="top">
				<th scope="row">لينک محصول</th>
				<td><input type="text" name="product_url" style="width:400px;" value="'.str_replace('"','\"',$product["file"]).'" /><br />(لطفا اطمينان حاصل کنيد که اين لينک مخفي است<br />اين لينک پس از خريد موفق به خريدار نشان داده مي شود )</td>
			</tr>
			<tr valign="top">
				<th scope="row">قيمت محصول(به ازاي هر بار دانلود)</th>
				<td><input type="text" name="product_cost" style="width:150px;" value="'.str_replace('"','\"',$product["cost"]).'" />ريال</td>
			</tr>
			<tr valign="top">
				<th scope="row">&nbsp;</th>
				<td>
					<input type="submit" class="button-primary" value="ذخيره کن" />
				</td>
			</tr>
		</table>
		</form>
	</div>';
	
	}
	protected static function admin_products_delete() {
		// delete and redirect
		global $wpdb;
		$table_name = $wpdb->prefix . "pfd_products";
		$id = $_GET["id"];
		$wpdb->query("DELETE FROM $table_name WHERE id = '$id'");
		
		echo '<script type="text/javascript"><!--
		window.location="'.get_option('siteurl').'/wp-admin/admin.php?page=payline-file-download-products"';
		echo '//--></script>';
	}
    public static function admin_dashboard() {
	global $wpdb;
	/*$image_vip = plugins_url( 'images/vip.png' , __FILE__ );
	$image_vipdata = plugins_url( 'images/vipdata.png' , __FILE__ );*/	
	
	$contentpage=Payline_Vip_GET_CURL('http://mehr-rayan.ir/_dashboard_/dashboardpage.php?plugin=shopvip1');
	
	echo $contentpage;
	
    }
	protected static function admin_products() {
		if (!current_user_can('manage_options'))  {
			wp_die( __('You do not have sufficient permissions to access this page.') );
		}
		
		$pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
		$limit = 6;
		$offset = ( $pagenum - 1 ) * $limit;
		
		global $wpdb;
		$table_name = $wpdb->prefix . "pfd_products";
		$products = $wpdb->get_results( "SELECT * FROM $table_name ORDER BY id DESC LIMIT $offset, $limit" ,ARRAY_A);
		
		
		$total = $wpdb->get_var( "SELECT COUNT(`id`) FROM {$wpdb->prefix}pfd_products" );
		$num_of_pages = ceil( $total / $limit );
		
		$cntx=0;
		
	echo '
	<div class="wrap">
		<h2>محصولات</h2>
		<table class="widefat post fixed" cellspacing="0">
			<thead>
				<tr>
					
					<th scope="col" id="name"  class="manage-column" style="">شماره آی دی</th>
					<th scope="col" id="name" width="50%" class="manage-column" style="">نام</th>
					<th scope="col" id="cost" class="manage-column" style="">قيمت</th>
					<th scope="col" id="downloads" class="manage-column num" style="">تعداد دانلود</th>
					<th scope="col" id="edit" class="manage-column num" style="">ويرايش</th>
					<th scope="col" id="delete" class="manage-column num" style="">حذف</th>
				</tr>
			</thead>
			<tfoot>
				<tr>
					
					<th scope="col" id="name"  class="manage-column" style="">شماره آی دی</th>
					<th scope="col" id="name" width="50%" class="manage-column" style="">نام</th>
					<th scope="col" id="cost" class="manage-column" style="">قيمت</th>
					<th scope="col" id="downloads" class="manage-column num" style="">تعداد دانلود</th>
					<th scope="col" id="edit" class="manage-column num" style="">ويرايش</th>
					<th scope="col" id="delete" class="manage-column num" style="">حذف</th>
				</tr>
			</tfoot>
			<tbody>';
				
				
				if (count($products) == 0) {
				echo '<tr class="alternate author-self status-publish iedit" valign="top">
					<td class="" colspan="5">هيچ محصولي موجود نيست</td>
				</tr>';
				} else {
				foreach ($products as $product) {
					$cntx++;
				echo '<tr class="alternate author-self status-publish iedit" valign="top">
					
					<td class="" style="color:#F00;"><b>'.$product['id'].'</b></td>
					<td class="post-title column-title"><strong><a class="row-title" href="'.get_option('siteurl').'/wp-admin/admin.php?page=payline-file-download-products&action=edit&id='.$product['id'].'">'.$product['name'].'</a></strong></td>
					<td class="">'.$product['cost'].' ريال</td>
					<td class="" style="text-align:center;">'.$product['downloads'].'</td>
					<td class="" style="text-align:center;"><a href="'.get_option('siteurl').'/wp-admin/admin.php?page=payline-file-download-products&action=edit&id='.$product['id'].'">ويرايش</a></td>
					<td class="" style="text-align:center;"><a href="'.get_option('siteurl').'/wp-admin/admin.php?page=payline-file-download-products&action=delete&id='.$product['id'].'" onClick="if(confirm(\'آيا از حذف اين مورد اطمينان داريد؟ !\')) { return true;} else { return false;}">حذف</a></td>
				</tr>';
				} } 
			echo '</tbody>
		</table>
		<br>';
        
		$page_links = paginate_links( array(
			'base' => add_query_arg( 'pagenum', '%#%' ),
			'format' => '',
			'prev_text' => __( '&laquo;', 'aag' ),
			'next_text' => __( '&raquo;', 'aag' ),
			'total' => $num_of_pages,
			'current' => $pagenum
		) );
		
		if ( $page_links ) {
			echo '<center><div class="tablenav"><div class="tablenav-pages"  style="float:none; margin: 1em 0">' . $page_links . '</div></div>
		</center>';
		}
		
		
        echo '<br>
		<hr>
		<h2>اضافه نمودن محصول</h2>
		<form action="'.get_option('siteurl').'/wp-admin/admin.php?page=payline-file-download-products&action=add" method="post">
		<table class="form-table">
			<tr valign="top">
				<th scope="row">نام محصول</th>
				<td><input type="text" name="product_name" style="width:250px;" value="" /></td>
			</tr>
			<tr valign="top">
				<th scope="row">لينک محصول</th>
				<td><input type="text" name="product_url" style="width:400px;" value="" /><br />(لطفا اطمينان حاصل کنيد که اين لينک مخفي است<br />اين لينک پس از خريد موفق به خريدار نشان داده مي شود )</td>
			</tr>
			<tr valign="top">
				<th scope="row">قيمت محصول(به ازاي هر بار دانلود)</th>
				<td><input type="text" name="product_cost" style="width:150px;" value="" />ريال</td>
			</tr>
			<tr valign="top">
				<th scope="row">&nbsp;</th>
				<td>
					<input type="submit" class="button-primary" value="اضافه کن" />
				</td>
			</tr>
		</table>
		</form>
	</div>';
	
	}
	protected static function admin_products_add() {
		// get shit
		$name = $_POST["product_name"];
		$url = $_POST["product_url"];
		$cost = $_POST["product_cost"];
		global $wpdb;
		$table_name = $wpdb->prefix . "pfd_products";
		$wpdb->insert( $table_name, array('name' => $name, 'file' => $url, 'cost' => $cost, 'downloads' => 0, 'created_at' => time()), array( '%s', '%s', '%s', '%d', '%d') );
		echo '<script type="text/javascript"><!--
		window.location="'.get_option('siteurl').'/wp-admin/admin.php?page=payline-file-download-products"';
		echo '//--></script>';
	}
	public static function admin_settings() {
		if (!current_user_can('manage_options'))  {
			wp_die( __('You do not have sufficient permissions to access this page.') );
		}
	
	echo '<div class="wrap">
		<h2>تنظیمات</h2>
        <h3 style="color:#f00;">API درگاه Payline را در تنظیمات بخش VIP تنظیم نمایید</h3>';
		
		if (isset($_GET['settings-updated'])) {
			echo '<div id="message" class="updated"><p>تنظيمات به روز شد!</p></div>';
		}
		echo '<form method="post" action="options.php">';
        
			settings_fields('pfd_options');
		
        	echo '<table class="form-table">
				
				<tr valign="top">
					<th scope="row">تاريخ انقضاي لينک بعد از...</th>
					<td><input type="text" name="expire_links_after" style="width:150px;" value="'.get_option('expire_links_after').'" /> روز (0 براي بي نهايت)<br />فعال کردن اين قسمت باعث مي شود لينک هاي شما پس از مدت تعيين شده غير فعال شوند</td>
				</tr>';
            echo '<tr valign="top">
					<th scope="row">مستقیم کردن لینک</th>
					<td><input type="text" name="paypal_direct" style="width:150px;" value="'.get_option('paypal_direct').'" /> روز (1 به معنای فعال)<br />فعال کردن اين قسمت باعث مي شود لينک هاي شما پس از پرداخت بصورت مستقیم نمایش داده شوند</td>
				</tr>';
				
				echo '<tr valign="top">
					<th scope="row">آدرس بازگشتي</th>
					<td><input type="text" name="paypal_return_url" style="width:250px;" value="'.get_option('paypal_return_url').'" /><br />لينک بازگشت به سايت شما پس از انجام تراکنش در درگاه Payline.ir</td>
				</tr>';
				echo '<tr valign="top">
					<th scope="row">اطلاع رساني</th>
					<td><textarea name="email_message" style="width:400px;height:200px;">'.get_option('email_message').'></textarea><br />پس از خريد موفق اين متن براي خريدار به نمايش در خواهد آمد<br /><strong>لينک دانلود بصورت اتوماتيک در انتهاي اين متن قرار مي گيرد</strong><br />شما مي توانيد از متغير هاي زير استفاده کنيد: <br />[DOWNLOAD_LINK] [PRODUCT_NAME] [TRANSACTION_ID]<br /></td>
				</tr>
				<tr valign="top">
					<th scope="row">&nbsp;</th>
					<td>
						<input type="submit" class="button-primary" value="ذخیره تغییرات" />
					</td>
				</tr>
			</table>
		</form>
	</div>';
	}
	public static function admin_transactions() {
		if (!current_user_can('manage_options'))  {
			wp_die( __('You do not have sufficient permissions to access this page.') );
		}
		
		
		
		
		$pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
		$limit = 6;
		$offset = ( $pagenum - 1 ) * $limit;
		
		
		
		global $wpdb;
		$table_name = $wpdb->prefix . "pfd_transactions";
		$products_name = $wpdb->prefix . "pfd_products";
		$orders_name = $wpdb->prefix . "pfd_orders";
		
				
		$transactions = $wpdb->get_results( "SELECT $table_name.order_code, $products_name.name, $table_name.first_name, $table_name.created_at, $table_name.last_name, $table_name.address_street, $table_name.address_city, $table_name.address_state, $table_name.address_zip, $table_name.address_country, $table_name.payment_fee, $table_name.payer_email,$table_name.mobile,  $orders_name.cost FROM $table_name JOIN $products_name ON $table_name.product_id = $products_name.id JOIN $orders_name ON $table_name.order_id = $orders_name.id ORDER BY $table_name.id DESC LIMIT $offset, $limit" ,ARRAY_A);
			
		$total = $wpdb->get_var( "SELECT COUNT($table_name.id) FROM $table_name JOIN $products_name ON $table_name.product_id = $products_name.id JOIN $orders_name ON $table_name.order_id = $orders_name.id");
		$num_of_pages = ceil( $total / $limit );
		
		$cntx=0;
		
		
	
	echo '<div class="wrap">
		<h2>فروش ها</h2>
		<table class="widefat post fixed" cellspacing="0">
			<thead>
				<tr>
					<th scope="col" id="name" width="40%" class="manage-column" style="">شماره تراکنش, محصول</th>
					<th scope="col" id="name" width="20%" class="manage-column" style="">تاريخ</th>
                    <th scope="col" id="name" width="20%" class="manage-column" style="">ایمیل موبایل</th>
                    
                    <th scope="col" id="name" width="20%" class="manage-column" style="">قيمت</th>
				</tr>
			</thead>
			<tfoot>
				<tr>
					<th scope="col" id="name" width="40%" class="manage-column" style="">شماره تراکنش, محصول</th>
					<th scope="col" id="name" width="20%" class="manage-column" style="">تاريخ</th>
                    <th scope="col" id="name" width="20%" class="manage-column" style="">ایمیل موبایل</th>
                    
                    <th scope="col" id="name" width="20%" class="manage-column" style="">قيمت</th>
				</tr>
			</tfoot>
			<tbody>';
				
				
				if (count($transactions) == 0) {
				
				echo '<tr class="alternate author-self status-publish iedit" valign="top">
					<td class="" colspan="7">هيج تراکنش وجود ندارد.</td>
				</tr>';
				
				} else {
				foreach ($transactions as $transaction) {
				
				echo '<tr class="alternate author-self status-publish iedit" valign="top">
					<td class="post-title column-title">'.$transaction['order_code'].'<br /><strong>'.$transaction['name'].'</strong></td>
					<td class="">';
					echo strftime("%a, %B %e, %Y %r", $transaction['created_at']);
					echo '<br />(';
					echo self::relative_time($transaction["created_at"]);
					echo ' ago)</td><td class="">'.$transaction['payer_email'].'<br>'.$transaction['mobile'].'</td><td class="">'.$transaction['cost'].' ريال</td></tr>';
				} } 
		echo '</tbody>
		</table>
        <br>';
        
        
		$page_links = paginate_links( array(
			'base' => add_query_arg( 'pagenum', '%#%' ),
			'format' => '',
			'prev_text' => __( '&laquo;', 'aag' ),
			'next_text' => __( '&raquo;', 'aag' ),
			'total' => $num_of_pages,
			'current' => $pagenum
		) );
		
		if ( $page_links ) {
			echo '<center><div class="tablenav"><div class="tablenav-pages"  style="float:none; margin: 1em 0">' . $page_links . '</div></div>
		</center>';
		}
		
        echo '<br>
		<hr>
	</div>';
	}
	public static function media_button($context){
		$image_url = plugins_url( 'images/basket.png' , __FILE__ );
		$more = '<a href="#TB_inline?width=350&inlineId=paypal_file_download_form" class="thickbox" title="قرارد دادن لينک پرداخت Payline"><img src="' . $image_url . '" alt="قرارد دادن لينک پرداخت Payline" /></a>';
		return $context . $more;
	}
	public static function vip_media_button($context){
		$image_url = plugins_url( 'images/vip.png' , __FILE__ );
		$more = '<a href="#TB_inline?width=350&inlineId=vip_linkdownload_form" class="thickbox" title="قرارد دادن لينک پرداخت Payline و لینک دانلود vip"><img src="' . $image_url . '" alt="vip" /></a>';
		return $context . $more;
	}
	public static function vip_data_button($context){
		$image_url = plugins_url( 'images/vipdata.png' , __FILE__ );
		$more = '<a href="#TB_inline?width=350&inlineId=vip_data_form" class="thickbox" title="قرار دادن شورتکد محتوای vip"><img src="' . $image_url . '" alt="قرار دادن شورتکد محتوای vip" /></a>';
		return $context . $more;
	}
	
	
	public static function add_vip_data_form(){
		echo "
	<script type=\"text/javascript\">
		function insert_shortcode_vipdata()
		{
		textvipdata = jQuery(\"#textvipdata\").val()
		
		construct = '[vip_data]'+textvipdata+'[/vip_data]';
		var wdw = window.dialogArguments || opener || parent || top;
		wdw.send_to_editor(construct);
		}
	</script>";
	
	echo '<div id="vip_data_form" style="display:none;">
		<div class="wrap" style="text-align:right;direction:rtl;">
			<div>	
				<div style="padding:15px 15px 0 15px;">
					<h3 style="font-size:16pt"><br />قرار دادن محتوای مخصوص کاربران VIP</h3>
                    <span> [vip_data] محل قرار دادن متن یا لینک ویژه [/vip_data] </span>
				</div>
				<div style="padding:15px 15px 0 15px;">
                <textarea name="textvipdata" id="textvipdata" style="width:90%; height:150px;"></textarea>
				</div>';
				
				echo '<div style="padding:15px;">
					<input type="button" class="button-primary" value="گذاشتن در نوشته" onClick="insert_shortcode_vipdata();"/>&nbsp;&nbsp;&nbsp;&nbsp;
                    <input type="button" class="button" value="بستن" onClick="tb_remove();"/>
                    
				</div>
			</div>
		</div>
	</div>';
}
	
	
	
	public static function add_pfd_form() {
	
	echo "<script type=\"text/javascript\">
		function insert_pfd_button(){
			product_id = jQuery('#product_selector').val()
			image = jQuery('#button_image_url').val()
            construct = '<form name=\"frm_payline' + product_id + '\" action=\"".get_option('siteurl')."/?checkout=' + product_id + '\" method=\"post\"><input type=\"image\" name=\"submit\" src=\"' + image + '\" value=\"1\"></form>';";
			echo "var wdw = window.dialogArguments || opener || parent || top;
			wdw.send_to_editor(construct);
		}";
		echo "function insert_pfd_link(){
			product_id = jQuery('#product_selector').val()
            construct = '<form name=\"frm_payline' + product_id + '\" action=\"".get_option('siteurl')."/?checkout=' + product_id + '\" method=\"post\"><input type=\"image\" src=\"\" value=\"' + image + '\"></form>';";
			echo "var wdw = window.dialogArguments || opener || parent || top;
			wdw.send_to_editor(construct);
		}
	</script>";
	echo '<div id="paypal_file_download_form" style="display:none;">
		<div class="wrap" style="text-align:right;direction:rtl;">
			<div>	
				<div style="padding:15px 15px 0 15px;">
					<h3 style="font-size:16pt"><br />قرارد دادن لينک پرداخت Payline</h3>
					<span>لطفا محصول مورد نظرتان را از لينک زير انتخاب نماييد</span>
				</div>
				<div style="padding:15px 15px 0 15px;">
					<table width="100%">
						<tr>
							<td width="150"><strong>محصول</strong></td>
							<td>';
                            
									global $wpdb;
									$table_name = $wpdb->prefix . "pfd_products";
									$products = $wpdb->get_results( "SELECT * FROM $table_name ORDER BY id ASC;" ,ARRAY_A);
									if (count($products) == 0)
									{
										echo 'محصولي وجود ندارد. <a href="'.get_option('siteurl').'/wp-admin/admin.php?page=paypal-file-download-products">نوشته خود را ذخيره کنيد و سپس اينجا کليک نماييد.</a>';
									
									} 
									else 
									{
										echo '<select id="product_selector">';
										foreach($products as $product)
										{
									
											echo '<option value="'.$product["id"].'">'.$product["name"].' ('.$product["cost"].' ريال)</option>';
									
										}
										echo '</select>';
									}
									
							echo '</td>
						</tr>
						<tr>
							<td width="135"><strong>لينک تصوير پرداخت:</strong></td>
							<td><input type="text" id="button_image_url" value="'.plugins_url("images/paynow.png",__FILE__).'" style="width:220px;" /></td>
						</tr>
					</table>
				</div>';
				echo '<div style="padding:15px;">
					<input type="button" class="button-primary" value="قرار دادن Button" onClick="insert_pfd_button();"/>&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" class="button" value="قرار دادن لينک" onClick="insert_pfd_link();"/>&nbsp;&nbsp;&nbsp;&nbsp;
                    <input type="button" class="button" value="بستن" onClick="tb_remove();"/>
                    
				</div>
			</div>
		</div>
	</div>';
	}
	protected static function ipn() {
		echo "<br/><div align='center' dir='rtl' style='font-family:tahoma;font-size:12px;'><b>نتیجـــه تـــراکنـش</b></div><br />";
		
        $url = 'http://payline.ir/payment/gateway-result-second';
        $api = get_option('vip_payline_api');;
        $trans_id = $_POST['trans_id'];
        $id_get = $_POST['id_get'];
        $result = self::get($url,$api,$trans_id,$id_get);
		$this_script = get_option('siteurl');
		if ($result == 1) {
			// find with order id
			global $wpdb;
			$table_name = $wpdb->prefix . "pfd_orders";
			$order = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table_name WHERE order_code = $id_get AND fulfilled = 0",$_POST["trans_id"]) , ARRAY_A, 0);
			$wpdb->update( $table_name, array('fulfilled' => 1), array('id' => $order["id"]));
			$table_name = $wpdb->prefix . "pfd_products";
			$product = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table_name WHERE id = %d",$order["product_id"]) , ARRAY_A, 0);
			$wpdb->update( $table_name, array('downloads' => $product["downloads"] + 1), array('id' => $product["id"]));
			$trans = array();
			// vars we want to extract
			/*$fields = "protection_eligibility address_status payer_id tax payment_date payment_status first_name last_name payer_status business address_name address_street address_city address_state address_zip address_country_code address_country quantity verify_sign payer_email txn_id payment_type receiver_email receiver_id txn_type item_name mc_currency item_number residence_country custom receipt_id transaction_subject payment_fee payment_gross";
			$fields_a = explode(" ",$fields);
			foreach($fields_a as $field) {
				$trans[$field] = isset($_POST[$field]) ? $_POST[$field] : NULL;
			}*/
			$trans["product_id"] = $product["id"];
			$trans["order_code"] = $trans_id;
			$trans["order_id"] = $order["id"];
			@session_start();
			$trans["payer_email"] = $_SESSION['email'];
			$trans["mobile"]=$_SESSION['mobile'];
			$trans["created_at"] = time();
			// insert into transactions
			$table_name = $wpdb->prefix . "pfd_transactions";
			$wpdb->insert($table_name, $trans);
			// download link
			if(get_option("paypal_direct") == 1){
				$download_link = $product["file"];
				$download_name = $product["name"];
				$download_link = "<a href='$download_link'>$download_name</a>";
			}else{
				$download_link = get_option('siteurl') . "/?download=" . $trans_id;
				$download_link = "<a href='$download_link'>$download_link</a>";
			}
            
			// get email text
			$emailtext = get_option('email_message');
			$emailtext = str_replace("[DOWNLOAD_LINK]",$download_link,$emailtext);
			$emailtext = str_replace("[PRODUCT_NAME]",$product["name"],$emailtext);
			$emailtext = str_replace("[TRANSACTION_ID]",$_POST["trans_id"],$emailtext);
			$emailtext = $emailtext . "<br /><br />لينک دانلود شما:<br />" . $download_link;
			// fantastic, now send them a message
			$message = $emailtext;
			echo "<div align='center' dir='rtl' style='font-family:tahoma;font-size:11px;border:1px dotted #c3c3c3; width:60%; line-height:20px;margin-left:20%'>تراکنش شما <font color='green'><b>مـوفق بود</b></font>.<br/><p align='right' style='margin-right:15px'>".nl2br($message)."</p><a href='",get_option('siteurl'),"'>بازگشت به صفحه اصلي</a><br/><br/></div>";
			@session_start();
			$headers = "From: <no-reply>\n";
			$headers .= "MIME-Version: 1.0\n";
			$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
			
			if(mail($_SESSION['email'], 'اطلاعات پرداخت', $emailtext, $headers) == false)
			{
				wp_mail( $_SESSION['email'], 'اطلاعات پرداخت', $emailtext, $headers );
			}
			
		}else{
            echo "<div align='center' dir='rtl' style='font-family:tahoma;font-size:11px;border:1px dotted #c3c3c3; width:60%; line-height:20px;margin-left:20%'>تراکنش شما <font color='red'><b>نـاموفق بود</b></font>.<br/><p align='right' style='margin-right:15px'> ممکن است به یکی از دلایل زیر باشد:<br/>1- ممکن است ارتباط شما با دروازه پرداخت بانک برقرار نشده باشد<br/>2- ممکن است از انجام عملیات پرداخت منصرف شده باشید<br/>3- ممکن است سرعت اینترنت شما درحال حاضر کم باشد و قادر به باز کردن درگاه پرداخت بانک نباشید.<br/> لطفا به صفحه اصلی سایت بازگشته و مجددا خرید خود را انجام دهید.</p><a href='",get_option('siteurl'),"'>بازگشت به صفحه اصلي</a><br/><br/></div>";
        }
	}
   
	protected static function get_email() {
		@session_start();
		$rand = rand(1000,9999);
		$_SESSION['captcha'] = $rand;
		
        
echo '<html>
<link rel="stylesheet"  media="all" type="text/css" href="'.plugins_url('style.css',__FILE__).'">
<body class="vipbody">	
<div class="mrbox2" > 
<h3><span>اطلاعات تکمیلی برای خرید آنلاین</span></h3>';
		if(isset($_SESSION['ErrorInput']))
		{
			echo $_SESSION['ErrorInput'];
			unset($_SESSION['ErrorInput']);
		}
	
        echo '<br />
        <form name="frm1" method="post">
        <table style="margin:0px auto;width:300px;">
        <tr>
        <td>ایمیل:</td>
        <td><input  type="text" name="email" id="email" style="text-align:left;" value="'.$_POST['email'].'" /><r style="color:#F00;"">*</r></td>
        </tr>';
        
        echo '<tr>
        <td>شماره همراه:</td>
        <td><input  type="text" name="mobile" id="mobile" style="text-align:left;" value="" /><r style="color:#F00;""></r></td>
        </tr>
        </table>
        <label class="title"> تصویر امنیتی</label>
          <input type="text" id="captcha" min="100" max="100000" name="captcha" class="CapchaInput" />
          <div class="captchalogin" style="background-color:#2064af;text-align: center;color: #FFFFFF;font-weight: bold;">'.$rand.'</div>
          <br />
          <br />
          <p align="center"><font color="#0066FF">برای ورود به درگاه پرداخت روی کلید زیر کلیک کنید.</font></p>
          <input type="submit" name="submit" id="submit" value="&nbsp;" class="dlbtn"/>
          <br />
        </form>
</div>
</body>
</html>'; 
        
	}
	public static function var_listener() {
		$SiteURL=get_option('siteurl');
         if(get_query_var("checkout")==NULL) {
			if(get_query_var("download")==NULL) {
				if (get_query_var("pfd_action") == "ipn") {
					self::ipn();
					exit();
				}
			} else {
				$id = $_GET["download"];
				global $wpdb;
				$table_name = $wpdb->prefix . "pfd_transactions";
				$transaction = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table_name WHERE order_code = %s",$id ), ARRAY_A, 0);
				if ($transaction==NULL) {
					die("فايل مورد نظر يافت نشد.");
				} else {
					$table_name = $wpdb->prefix . "pfd_products";
					$product = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table_name WHERE id = %d",$transaction["product_id"]), ARRAY_A, 0);
					// get option for days
					$daysexpire = get_option('expire_links_after');
					if ($daysexpire == 0) {
						// don't check
					} else {
						// check for expiry
						// transaction created at should be larger than now - x days
						$nowminus = time() - ($daysexpire*86400);
						if ($transaction["created_at"] > $nowminus) {
							// good
						} else {
							die("مدت زمان دانلود اين فايل به اتمام رسيده است.");
						}
					}
					// force download
					header('Content-disposition: attachment; filename=' . basename($product["file"]));
					header('Content-Type: application/octet-stream');
					header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
					header('Expires: 0');
					$result = wp_remote_get($product["file"]);
					echo $result['body'];					
					die();
				}
			}
		} else {
			@session_start();
			if(isset($_POST['submit'])){
				
				$_SESSION['ErrorInput']='';
				$_captcha=$_SESSION['captcha'];
				$_email=$_POST['email'];
				$_mobile=$_POST['mobile'];
				$_status_captcha='captcha';
				
				if(isset($_POST['status_captcha']))
				{
					$_status_captcha=$_POST['status_captcha'];
				}
				
				if (!filter_var($_email, FILTER_VALIDATE_EMAIL))
				{
					$_SESSION['ErrorInput']='<ErrorMsg>ایمیل وارد شده نامعتبر است</ErrorMsg>';
					self::get_email();
					exit();
				}
				if($_status_captcha!='no_captcha')
				{				
					if($_POST['captcha']!=$_captcha)
					{
	
						$_SESSION['ErrorInput']='<ErrorMsg>تصویر امنیتی را درست وارد نمایید</ErrorMsg>';
	
						self::get_email();
	
						exit();
	
					}
				}
				
				$_mobile=trim($_mobile);
				/*$pattern ="/(\+98|0)?9\d{9}/";
				if(!preg_match($pattern,$_mobile))
				{
					$_SESSION['ErrorInput']='<ErrorMsg>شماره همراه راصحیح وارد نمایید
					09101234567 یا 989101234567+ </ErrorMsg>';
					self::get_email();
					exit();
				}*/
				
				$_SESSION['email'] = $_email;
				$_SESSION['mobile'] = $_mobile;
					
				$product_id = get_query_var("checkout");
	
				global $wpdb;
				$table_name = $wpdb->prefix . "pfd_products";
	
				// get product
				$product = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table_name WHERE id = %d",$product_id) , ARRAY_A, 0);
	
				// construct order
				$table_name = $wpdb->prefix . "pfd_orders";
	
				$url = 'http://payline.ir/payment/gateway-send';
				$api = get_option('vip_payline_api');
				$amount = $product["cost"];
				$redirect = urlencode(get_option('siteurl') . "/?pfd_action=ipn");
				$result = self::send($url,$api,$amount,$redirect);
				if($result > 0 && is_numeric($result)){
					$go = "http://payline.ir/payment/gateway-$result";
					$wpdb->insert( $table_name, array('product_id' => $product_id, 'order_code' => $result, 'fulfilled' => 0, 'created_at' => time(), 'cost' => $product["cost"]), array( '%d', '%s', '%d', '%d', '%s') );
					header("Location: $go");
				}else{
					
					$html ='<html><head>
						<link media="all" rel="stylesheet" type="text/css" href="'.plugins_url('style.css',__FILE__).'"></head><body class="vipbody"><div class="mrbox2">';
						$html .='<b>در برقراري ارتباط با درگاه پرداخت Payline مشکلي بوجود آمده است<br>';
						$html .='لطفا به مدیر اطلاع دهید<br>کد خطا : '.$result.'</b><br><br>';
						$html .='<a class="mrbtn_green" href="'.get_option('siteurl').'">بازگشت به صفحه اصلي</a>';
						$html .='</div></body></html>';			
						echo $html;
						exit();
				}
			}else{
				self::get_email();
				exit();
			}
	}
    }
	// make sure we have the paypal action listener available
	public static function register_vars($vars) {
		$vars[] = "pfd_action";
		$vars[] = "checkout";
		$vars[] = "download";
		$vars[] = "vip_action";
		$vars[] = "buy_account_vip";
		$vars[] = "vipdownload";
		return $vars; // return to wordpress
	}
	
	
	
	
	
	
	
	
	// ALL Down Code ----> VIP
	
	
	
	
	public static function admin_vip_router() {
		$action = '';
		if (!empty($_REQUEST['action'])) {
			$action = $_REQUEST['action'];
		}
		switch ($action) {
			case 'edit':
				return self::admin_vip_account_edit();
				break;
			case 'delete':
				return self::admin_vip_account_delete();
				break;
			case 'add':
				return self::admin_vip_account_add();
				break;
			default:
				return self::admin_vip_accounts();
		}
	}
	protected static function admin_vip_account_edit() {
		global $wpdb;
		$table_name = $wpdb->prefix . "vip_accounts";
		
		if (isset($_POST["name"])) {
			$name = $_POST["name"];
			$descript = $_POST["descript"];
			$cost = $_POST["cost"];
			$day = $_POST["day"];
			$per_day=$_POST["per_day"];
						
			$wpdb->update( $table_name, array('name' => $name, 'descript' => $descript, 'cost' => $cost,'day' => $day,'per_day' => $per_day,), array('id' => $_GET["id"]), array( '%s', '%s', '%d', '%d', '%d'));
		}
		
		
		$account = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table_name WHERE id = %d",$_GET["id"]) , ARRAY_A, 0);
	
echo '<div class="wrap">
  <h3>ويرايش اشتراک: '.$account['name'].'</h3>
  <a href="'.get_option('siteurl').'/wp-admin/admin.php?page=payline-vip-accounts">&laquo; بازگشت به صفحه اشتراک ها</a>
  <form action="'.get_option('siteurl').'/wp-admin/admin.php?page=payline-vip-accounts&action=edit&id='.$_GET['id'].'" method="post">
    <table class="form-table">
      <tr valign="top">
        <th scope="row">نام اشتراک</th>
        <td><input type="text" name="name" style="width:250px;" value="'.str_replace('"','\"',$account["name"]).'" /></td>
      </tr>
      <tr valign="top">
        <th scope="row">توضیحات</th>
        <td>';
        
        echo '<textarea name="descript" style="width:400px;" cols="" rows="">'.str_replace('"','\"',$account["descript"]).'</textarea>
        </td>
        </tr>';
      
      echo '<tr valign="top">
        <th scope="row">قيمت اشتراک</th>
        <td><input type="text" name="cost" style="width:150px;" value="'.str_replace('"','\"',$account["cost"]).'" />
          ريال</td>
      </tr>
      <tr valign="top">
        <th scope="row">تعداد روز اشتراک</th>
        <td><input type="text" name="day" style="width:100px;" value="'.str_replace('"','\"',$account["day"]).'" />
          </td>
      </tr>
      <tr valign="top">
        <th scope="row">تعداد دانلود مجاز در یک روز</th>
        <td><input type="text" name="per_day" style="width:100px;" value="'.str_replace('"','\"',$account["per_day"]).'" />
        
        <br><span>1- : تعداد دانلود روزانه نامحدود</span>
        <br><span>0 : کاربران این اشتراک فقط امکان مشاهده مطالب vip را دارند (شامل :متن ، لینک ، تصویر و هر چه شما در بین شورتکد vip_data قرار دهید ) اما امکان  دانلود روزانه vip ندارند</span>
          </td>
      </tr>';
      
      echo '<tr valign="top">
        <th scope="row">&nbsp;</th>
        <td><input type="submit" class="button-primary" value="ذخيره کن" /></td>
      </tr>
    </table>
  </form>
</div>';
	}
	protected static function admin_vip_account_delete() {
		// delete and redirect
		global $wpdb;
		$table_name = $wpdb->prefix . "vip_accounts";
		$id = $_GET["id"];
		$wpdb->query("DELETE FROM $table_name WHERE id = '$id'");
		
		echo '<script type="text/javascript"><!--
		window.location="'.get_option('siteurl').'/wp-admin/admin.php?page=payline-vip-accounts"';
		echo '//--></script>';
	}
	 
	protected static function admin_vip_accounts() {
		if (!current_user_can('manage_options'))  {
			wp_die( __('You do not have sufficient permissions to access this page.') );
		}
	
echo '<div class="wrap">
  <h3>لیست اشتراک ها</h3>
  <table class="widefat post fixed" cellspacing="0">
    <thead>
      <tr>
        <th scope="col" id="id"  class="manage-column" style="">#</th>
        <th scope="col" id="name" class="manage-column" style="">نام</th>
        <th scope="col" id="descript" width="30%" class="manage-column" style="">توضیحات</th>
        <th scope="col" id="cost" class="manage-column" style="">قيمت</th>
        <th scope="col" id="day" class="manage-column num" style="">تعداد روز</th>
        <th scope="col" id="per_day" class="manage-column num" style="">دانلود روزانه</th>
        <th scope="col" id="delete" class="manage-column num" style="">حذف</th>
      </tr>
    </thead>
    <tfoot>
      <tr>
        <th scope="col" id="id"  class="manage-column" style="">#</th>
        <th scope="col" id="name" class="manage-column" style="">نام</th>
        <th scope="col" id="descript" width="30%" class="manage-column" style="">توضیحات</th>
        <th scope="col" id="cost" class="manage-column" style="">قيمت</th>
        <th scope="col" id="day" class="manage-column num" style="">تعداد روز</th>
        <th scope="col" id="per_day" class="manage-column num" style="">دانلود روزانه</th>
        <th scope="col" id="delete" class="manage-column num" style="">حذف</th>
      </tr>
    </tfoot>
    <tbody>';
      
				global $wpdb;
				$table_name = $wpdb->prefix . "vip_accounts";
				$accounts = $wpdb->get_results( "SELECT * FROM $table_name ORDER BY id desc" ,ARRAY_A);
				if (count($accounts) == 0) {
				
      echo '<tr class="alternate author-self status-publish iedit" valign="top">
        <td class="" colspan="5">هيچ اشتراکی موجود نيست</td>
      </tr>';
      
				} else {
				foreach ($accounts as $account) {
					$user_info = get_userdata(intval($account['iduser']));
				
      echo '<tr class="alternate author-self status-publish iedit" valign="top">
        <td class="">'.$account['id'].'</td>
        <td>
		<a class="row-title" href="'.get_option('siteurl').'/wp-admin/admin.php?page=payline-vip-accounts&action=edit&id='.$account['id'].'">'.$account['name'].'</a></td>';
       echo '<td>'.$account['descript'].'</td>
       <td>'.$account['cost'].'</td>
       <td>'.$account['day'].'</td>
       <td>'.$account['per_day'].'</td>
       <td><a class="row-title" href="'.get_option('siteurl').'/wp-admin/admin.php?page=payline-vip-accounts&action=delete&id='.$account['id'].'">حذف</a></td>
      </tr>';
      } }
    echo '</tbody>
  </table>
  <h3>اضافه نمودن اشتراک</h3>
  <form action="'.get_option('siteurl').'/wp-admin/admin.php?page=payline-vip-accounts&action=add" method="post">
    <table class="form-table">
      <tr valign="top">
        <th scope="row">نام اشتراک</th>
        <td><input type="text" name="name" style="width:250px;" /></td>
      </tr>
      <tr valign="top">
        <th scope="row">توضیحات</th>
        <td>        
        <textarea name="descript" style="width:400px;" cols="" rows=""></textarea>
        </td>
        </tr>
      <tr valign="top">
        <th scope="row">قيمت اشتراک</th>
        <td><input type="text" name="cost" style="width:150px;" />
          ريال</td>
      </tr>
      <tr valign="top">
        <th scope="row">تعداد روز اشتراک</th>
        <td><input type="text" name="day" style="width:100px;" />
          </td>
      </tr>
      <tr valign="top">
        <th scope="row">تعداد دانلود مجاز در یک روز</th>
        <td><input type="text" name="per_day" style="width:100px;" />
        
        <br><span>1- : تعداد دانلود روزانه نامحدود</span>
        <br><span>0 : کاربران این اشتراک فقط امکان مشاهده مطالب vip را دارند (شامل :متن ، لینک ، تصویر و هر چه شما در بین شورتکد vip_data قرار دهید ) اما امکان  دانلود روزانه vip ندارند</span>
        
          </td>
      </tr>
      
      
      <tr valign="top">
        <th scope="row">&nbsp;</th>
        <td><input type="submit" class="button-primary" value="ذخيره کن" /></td>
      </tr>
    </table>
  </form>
</div>';
	}
	protected static function admin_vip_account_add() {
		// get shit
		$name = $_POST["name"];
		$descript = $_POST["descript"];
		$cost = $_POST["cost"];
		$day = $_POST["day"];
		$per_day = $_POST["per_day"];
		global $wpdb;
		$table_name = $wpdb->prefix . "vip_accounts";
		$wpdb->insert( $table_name, array('name' => $name, 'descript' => $descript, 'cost' => $cost, 'day' => $day, 'per_day' => $per_day), array( '%s', '%s', '%d', '%d', '%d') );
		
		echo '<script type="text/javascript"><!--
		window.location="'.get_option('siteurl').'/wp-admin/admin.php?page=payline-vip-accounts"';
		echo '//--></script>';
		
	}
	public static function admin_settingsvip() {
		if (!current_user_can('manage_options'))  {
			wp_die( __('You do not have sufficient permissions to access this page.') );
		}
	
echo '<div class="wrap">
  <h3>تنظيمات</h3>';
  
		if (isset($_GET['settings-updated'])) {
			echo '<div id="message" class="updated"><p>تنظيمات به روز شد!</p></div>';
		}
  echo '<form method="post" action="options.php">';
    settings_fields('vip_options');
    echo '<table class="form-table">
      <tr valign="top">
        <th scope="row">API</th>
        <td><input type="text" name="vip_payline_api" style="width:300px;" value="'.get_option('vip_payline_api').'" />
          <br />
          API درگاه شما در سايت Payline . </td>
      </tr>
      
      <tr valign="top">
        <th scope="row">آدرس بازگشتي</th>
        <td><input type="text" name="vip_payline_return_url" style="width:250px;" value="'.get_option('vip_payline_return_url').'" />
          <br />
          لينک بازگشت به سايت شما پس از انجام تراکنش در درگاه Payline.ir</td>
      </tr>';
      
	  echo '<tr valign="top">
        <th scope="row">پیام vip نبودن کاربر</th>
        <td><textarea name="vip_message_novip" style="width:400px;height:200px;">'.get_option('vip_message_novip').'</textarea>
          <br />
          این پیام برای کاربرانی نمایش داده می شود که vip نیستند<br />
          </td>
      </tr>';
      
      echo '<tr valign="top">
        <th scope="row">اطلاع رساني</th>
        <td><textarea name="vip_message_email" style="width:400px;height:200px;">'.get_option('vip_message_email').'</textarea>
          <br />
          پس از خرید اشتراک vip این پیام ایمیل و نمایش داده می شود<br />
          شما مي توانيد از متغير هاي زير استفاده کنيد: <br />
          [ACCOUNT_NAME] [TRANSACTION_ID]<br /></td>
      </tr>
    
      <tr valign="top">
        <th scope="row">&nbsp;</th>
        <td><input type="submit" class="button-primary" value="ذخیره تغییرات" /></td>
      </tr>
    </table>
  </form>
</div>';
	}
	
	
	
	
	public static function admin_orders() {
		if (!current_user_can('manage_options'))  {
			wp_die( __('You do not have sufficient permissions to access this page.') );
		}
		
		$pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
		$limit = 6;
		$offset = ( $pagenum - 1 ) * $limit;
		
		
		global $wpdb;
		$orders_name = $wpdb->prefix . "vip_orders";
		$accounts_name = $wpdb->prefix . "vip_accounts";
		$users_name = $wpdb->prefix . "users";
		$orders = $wpdb->get_results( "SELECT $orders_name.iduser,$orders_name.fulfilled, $orders_name.idaccount, $orders_name.order_code , $orders_name.cost, $orders_name.created_at, $users_name.user_login,$accounts_name.name FROM $orders_name JOIN $accounts_name ON $orders_name.idaccount = $accounts_name.id JOIN $users_name ON $orders_name.iduser = $users_name.ID ORDER BY $orders_name.id DESC LIMIT $offset, $limit" ,ARRAY_A);
		
		
		$total = $wpdb->get_var( "SELECT COUNT($orders_name.id) FROM $orders_name JOIN $accounts_name ON $orders_name.idaccount = $accounts_name.id JOIN $users_name ON $orders_name.iduser = $users_name.ID" );
		
		$num_of_pages = ceil( $total / $limit );
		
		$cntx=0;
		
	
echo '<div class="wrap">
  <h3>لیست کاربران vip</h3>
  <table class="widefat post fixed" cellspacing="0">
    <thead>
      <tr>
        <th scope="col" id="name" width="" class="manage-column" style="width:30px">#</th>
        <th scope="col" id="name" width="" class="manage-column" style="">اشتراک</th>
        <th scope="col" id="name" width="" class="manage-column" style="">کاربر</th>
        <th scope="col" id="name" width="" class="manage-column" style="">تراکنش</th>
        <th scope="col" id="name" width="30%" class="manage-column" style="">تاريخ</th>
        <th scope="col" id="name" width="" class="manage-column" style="">قيمت ريال</th>
        <th scope="col" id="name" width="" class="manage-column" style="">وضعیت</th>
      </tr>
    </thead>
    <tfoot>
      <tr>
        <th scope="col" id="name" width="" class="manage-column" style="width:30px">#</th>
        <th scope="col" id="name" width="" class="manage-column" style="">اشتراک</th>
        <th scope="col" id="name" width="" class="manage-column" style="">کاربر</th>
        <th scope="col" id="name" width="" class="manage-column" style="">تراکنش</th>
        <th scope="col" id="name" width="30%" class="manage-column" style="">تاريخ</th>
        <th scope="col" id="name" width="" class="manage-column" style="">قيمت ريال</th>
        <th scope="col" id="name" width="" class="manage-column" style="">وضعیت</th>
      </tr>
    </tfoot>
    <tbody>';
				if (count($orders) == 0) {
				
      echo '<tr class="alternate author-self status-publish iedit" valign="top">
        <td class="" colspan="7">هيج تراکنش وجود ندارد.</td>
      </tr>';
				} else {
				foreach ($orders as $order) { $cntx++;
				
      echo '<tr class="alternate author-self status-publish iedit" valign="top">
        <td class="">'.$cntx.'</td>
        <td class="">'.$order['name'].'</td>
        <td class="">'.$order['user_login'].'</td>
        <td class="">'.$order['order_code'].'</td>
        <td class="">';
		echo strftime("%F %r", $order['created_at']);
		echo '<br />(';
		echo self::relative_time($order["created_at"]);
		echo ' ago)</td><td class="">'.$order['cost'].'</td>
        <td class="">';
		echo (intval($order['fulfilled'])==1)?"موفق":"ناموفق";
		echo '</td></tr>';
       } } 
    echo'</tbody>
  </table>
  <br>';
        
		$page_links = paginate_links( array(
			'base' => add_query_arg( 'pagenum', '%#%' ),
			'format' => '',
			'prev_text' => __( '&laquo;', 'aag' ),
			'next_text' => __( '&raquo;', 'aag' ),
			'total' => $num_of_pages,
			'current' => $pagenum
		) );
		
		if ( $page_links ) {
			echo '<center><div class="tablenav"><div class="tablenav-pages"  style="float:none; margin: 1em 0">' . $page_links . '</div></div>
		</center>';
		}
	
        echo '<br></div>';
	}
	protected static function ipnvip() {
		date_default_timezone_set("Asia/Tehran");
		
		echo "<br/><div align='center' dir='rtl' style='font-family:tahoma;font-size:12px;'><b>نتیجـــه تـــراکنـش</b></div><br />";
		
        $url = 'http://payline.ir/payment/gateway-result-second';
        $api = get_option('vip_payline_api');
		
        $trans_id = $_POST['trans_id'];
        $id_get = $_POST['id_get'];
        $result = self::get($url,$api,$trans_id,$id_get);
		
		$this_script = get_option('siteurl');
		if ($result == 1) {
			// find with order id
			global $wpdb;
			
			$order_name = $wpdb->prefix . "vip_orders";
			$order = $wpdb->get_row($wpdb->prepare("SELECT * FROM $order_name WHERE order_code = $id_get AND fulfilled = 0",$_POST["trans_id"]) , ARRAY_A, 0);
			
			$account_name = $wpdb->prefix . "vip_accounts";
			$account = $wpdb->get_row($wpdb->prepare("SELECT * FROM $account_name WHERE id = %d ",$order["idaccount"]) , ARRAY_A, 0);
			
			$wpdb->update( $order_name, array('fulfilled' => 1), array('id' => $order["id"]));
			
			
			//Add Information to Meta Users
			
			$user_id=$order['iduser'];
			$Exp_Vip=date('Y-m-d', strtotime('+'.$account['day'].' day', strtotime("now")));
			$Last_Vip_Name=$account['name'];
			$Last_Buy_Vip=$order['created_at'];
			$Exp_Per_Day=$account['per_day'];
			$Extant_Daily=$account['per_day'];
			
			update_user_meta( $user_id, 'exp_vip', $Exp_Vip);
			update_user_meta( $user_id, 'last_vip_name', $Last_Vip_Name);
			update_user_meta( $user_id, 'last_buy_vip', $Last_Buy_Vip);
			update_user_meta( $user_id, 'exp_per_day', $Exp_Per_Day);
			update_user_meta( $user_id, 'extant_daily', $Extant_Daily);				
			
			// get email text
			$emailtext = get_option('vip_message_email');
			$emailtext = str_replace("[ACCOUNT_NAME]",$account["name"],$emailtext);
			$emailtext = str_replace("[TRANSACTION_ID]",$_POST["trans_id"],$emailtext);
			// fantastic, now send them a message
			$message = $emailtext;
			echo "<div align='center' dir='rtl' style='font-family:tahoma;font-size:11px;border:1px dotted #c3c3c3; width:60%; line-height:20px;margin-left:20%'>تراکنش شما <font color='green'><b>مـوفق بود</b></font>.<br/><p align='right' style='margin-right:15px'>".nl2br($message)."</p><a href='",get_option('siteurl'),"'>بازگشت به صفحه اصلي</a><br/><br/></div><br>";
			
			$headers = "From: <no-reply>\n";
			$headers .= "MIME-Version: 1.0\n";
			$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
			
			$user_info=get_userdata(intval($order['iduser']));
			
			mail($user_info->user_email,'اطلاعات پرداخت خرید اشتراک',$emailtext,$headers);
		}else{
            echo "<div align='center' dir='rtl' style='font-family:tahoma;font-size:11px;border:1px dotted #c3c3c3; width:60%; line-height:20px;margin-left:20%'>تراکنش شما <font color='red'><b>نـاموفق بود</b></font>.<br/><p align='right' style='margin-right:15px'> ممکن است به یکی از دلایل زیر باشد:<br/>1- ممکن است ارتباط شما با دروازه پرداخت بانک برقرار نشده باشد<br/>2- ممکن است از انجام عملیات پرداخت منصرف شده باشید<br/>3- ممکن است سرعت اینترنت شما درحال حاضر کم باشد و قادر به باز کردن درگاه پرداخت بانک نباشید.<br/> لطفا به صفحه اصلی سایت بازگشته و مجددا خرید خود را انجام دهید.</p><a href='",get_option('siteurl'),"'>بازگشت به صفحه اصلي</a><br/><br/></div>";
        }
	}
    public static function send($url,$api,$amount,$redirect){
        $ch = curl_init();
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_POSTFIELDS,"api=$api&amount=$amount&redirect=$redirect");
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
        $res = curl_exec($ch);
        curl_close($ch);
        return $res;
    }
    public static function get($url,$api,$trans_id,$id_get){
        $ch = curl_init();
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_POSTFIELDS,"api=$api&id_get=$id_get&trans_id=$trans_id");
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
        $res = curl_exec($ch);
        curl_close($ch);
        return $res;
    }
	
	
	protected static function get_captcha() {
			
		@session_start();
		$rand = rand(1000,9999);
		$_SESSION['captcha'] = $rand;
		// Html Code For From
		    
echo '<html>
<link rel="stylesheet" media="all" type="text/css" href="'.plugins_url('style.css',__FILE__).'">
<body class="vipbody">
<div class="mrbox2" > 
<h3><span>فرم پرداخت اشتراک VIP</span></h3>';
		if(isset($_SESSION['ErrorInput']))
		{
			echo $_SESSION['ErrorInput'];
			unset($_SESSION['ErrorInput']);
		}
		
        echo '<br />
        <form name="frm1" method="post">
          <label class="title"> تصویر امنیتی</label>
          <input type="text" id="captcha" min="100" max="100000" name="captcha" class="CapchaInput" />
          <div class="captchalogin" style="background-color:#2064af;text-align: center;color: #FFFFFF;font-weight: bold;">'.$rand.'</div>
          <br />
          <br />
          <p align="center"><font color="#0066FF">برای ورود به درگاه پرداخت روی کلید زیر کلیک کنید.</font></p>
          <input type="submit" name="submit" id="submit" value="&nbsp;" class="dlbtn"/>
          <br />
        </form>
</div>
</body>
</html>';
         
	}
	
	public static function vip_listener() {
		 $SiteURL=get_option('siteurl');
         if(get_query_var("buy_account_vip")==NULL) {
			if(get_query_var("vipdownload")==NULL)
			{
				if (get_query_var("vip_action") == "ipnvip") {
					self::ipnvip();
					exit();
				}
			} else{
								
				$idproduct = intval($_GET["vipdownload"]);
				global $wpdb;
				$table_name = $wpdb->prefix . "pfd_products";
				$product = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table_name WHERE id = %d",$idproduct), ARRAY_A, 0);
				
				// update extant_daily
				
				$current_user=wp_get_current_user();
				$user_id=$current_user->ID;
				$Tusermeta = $wpdb->prefix . "usermeta";
				
				$Exp_Vip=get_user_meta($user_id,'exp_vip',true);
				$Exp_Per_Day=intval(get_user_meta($user_id,'exp_per_day',true));
				$Extant_Daily=intval(get_user_meta($user_id,'extant_daily',true));
			
				
				if(get_exp_day($Exp_Vip,true))
				{
					$html = '<html><head><link rel="stylesheet"  media="all" type="text/css" href="'.plugins_url('style.css',__FILE__).'"></head><body class="vipbody" >';
					
					$html .='<div class="mrbox2">';
					$html .= '<b>اشتراک ویژه شما به پایان رسیده <br> شما اجازه مشاهده این بخش را ندارید</b><br>شما می توانید اشتراک جدید بخرید<br>';
					$html=CreateFormBuyVIP1($html);
					$html .='</div></body></html>';
					echo $html;
					die();
				}
				else
				{
					// بررسی تعداد دانلود مجاز و باقی مانده
					if(($Extant_Daily==-1 or ($Extant_Daily>=1)) and ($Extant_Daily<=$Exp_Per_Day))
					{
						// Extant_Daily-1
						$x=$Extant_Daily;
						
						if($Exp_Per_Day>=0)
						{
							$x=$Extant_Daily-1;
						}						
						update_user_meta($user_id,'extant_daily',$x);
													
						// force download
						header('Content-disposition: attachment; filename=' . basename($product["file"]));
						header('Content-Type: application/octet-stream');
						header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
						header('Expires: 0');
						$result = wp_remote_get($product["file"]);
						echo $result['body'];
						die();
						
					}
					else
					{
						$html ='<html><head>
						<link media="all" rel="stylesheet" type="text/css" href="'.plugins_url('style.css',__FILE__).'"></head><body class="vipbody"><div class="mrbox2">';
						$html .= '<b>تعداد دانلود روزانه شما به پایان رسیده</b><br>
					شما می توانید فردا مراجعه کنید<br>';
						$html .='
						<hr>
						<b> همین الان محصول را با پرداخت آنلاین بخرید </b>
						<br><br>
						<form name="frm_payline'.$product['id']. '" action="'.$SiteURL.'" method="get">
						<input type="hidden" name="checkout" value="'.$product['id'].'">
						<input type="submit" name="submit" value="پرداخت آنلاین و دانلود" class="mrbtn_red" ></form>';
						
						$html .='</div></body></html>';			
						echo $html;
						die();
					}
				}
				
			}
		} else { // --->buy_account_vip
			@session_start();
			if(isset($_POST['submit']))
			{
				$_captcha=$_SESSION['captcha'];
				
				if($_POST['captcha']!=$_captcha)
				{
					$_SESSION['ErrorInput']='<ErrorMsg>تصویر امنیتی را درست وارد نمایید</ErrorMsg>';
					self::get_captcha();
					exit();
				}
				else
				{
					$account_id = get_query_var("buy_account_vip");
		
					global $wpdb;
					$current_user = wp_get_current_user();
				    $user_id=$current_user->ID;
					
					$account_name = $wpdb->prefix . "vip_accounts";
		
					// get account
					$account = $wpdb->get_row($wpdb->prepare("SELECT * FROM $account_name WHERE id = %d",$account_id) , ARRAY_A, 0);
		
					// construct order
					$order_name = $wpdb->prefix . "vip_orders";
		
					$url = 'http://payline.ir/payment/gateway-send';
					$api = get_option('vip_payline_api');
					$amount = $account["cost"];
					$redirect = urlencode(get_option('siteurl') . "/?vip_action=ipnvip");
					$result = self::send($url,$api,$amount,$redirect);
					if($result > 0 && is_numeric($result))
					{
						$go = "http://payline.ir/payment/gateway-$result";
						$wpdb->insert( $order_name, array('idaccount' => $account_id,'iduser' => $user_id, 'order_code' => $result, 'fulfilled' => 0, 'created_at' => time(), 'cost' => $account["cost"]), array( '%d','%d', '%s', '%d', '%d', '%s') );
						header("Location: $go");
					}
					else
					{
						
						$html ='<html><head>
						<link media="all" rel="stylesheet" type="text/css" href="'.plugins_url('style.css',__FILE__).'"></head><body class="vipbody"><div class="mrbox2">';
						$html .='<b>در برقراري ارتباط با درگاه پرداخت Payline مشکلي بوجود آمده است<br>';
						$html .='لطفا به مدیر اطلاع دهید<br>کد خطا : '.$result.'</b><br><br>';
						$html .='<a class="mrbtn_green" href="'.get_option('siteurl').'">بازگشت به صفحه اصلي</a>';
						$html .='</div></body></html>';			
						echo $html;
						exit();
						
					}
				}
			}
			else{
				self::get_captcha();
				exit();
			}			
		}
    }	
	
	
	
	
	
	
	public static function add_linkdownload_vip_form() {
		
echo "<script type=\"text/javascript\">
		function insert_vip_linkdownload(){
			product_id = jQuery(\"#vip_product_selector\").val();
			construct='[vip_linkdownload idproduct='+product_id+']';
			
			var wdw = window.dialogArguments || opener || parent || top;
			wdw.send_to_editor(construct);
		}
</script>";
echo '<div id="vip_linkdownload_form" style="display:none;">
  <div class="wrap" style="text-align:right; direction:rtl;">
    <div>
      
        <div style="padding:15px 15px 0 15px;">
			<h3 style="font-size:16pt">قرارد دادن لينک پرداخت Payline و نمایش لینک دانلود کاربران vip</h3>
			<span>لطفا محصول مورد نظرتان را از لينک زير انتخاب نماييد</span>
		</div>
        
      <div style="padding:15px 15px 0 15px;">
        <table width="100%">
          <tr>
            <td width="150"><strong>محصول</strong></td>
            <td>';
                
				global $wpdb;
				$table_name = $wpdb->prefix . "pfd_products";
				$products = $wpdb->get_results( "SELECT * FROM $table_name ORDER BY id ASC;" ,ARRAY_A);
				if (count($products) == 0) 
				{
					echo 'محصولي وجود ندارد. <a href="'.get_option('siteurl').'/wp-admin/admin.php?page=paypal-file-download-products'.'">نوشته خود را ذخيره کنيد و سپس اينجا کليک نماييد.</a>';
				} 
				else
				{
					echo '<select id="vip_product_selector" style="width:300px;">';
					foreach($products as $product) {
						echo '<option value="'.$product["id"].'">'.$product["name"].' ('.$product["cost"].' ريال)</option>';
					}
					echo '</select>';
				}
			  	
              echo '</td>
          </tr>
        </table>
      </div>
      <div style="padding:15px;">
        <input type="button" class="button-primary" value="نمایش در نوشته" onClick="insert_vip_linkdownload();"/>
        &nbsp;&nbsp;
        <input type="button" class="button" value="بستن" onClick="tb_remove();"/>
        </div>
    </div>
  </div>
</div>';
	}
	
	
}

 

 

 

و اینم کدهای مربوط به فایل func_shortcode.php

<?php

function get_exp_day($Time_Sec,$Bool=false)
{
	date_default_timezone_set("Asia/Tehran");
	$x=ceil((strtotime($Time_Sec)-strtotime(date("Y-m-d")))/60/60/24);
	if($x<0)
	{
		if($Bool==true)
			return true;
		return 'منقضی شده';
	}
	else if($x==0)
	{
		if($Bool==true)
			return true;
		return 'امروز تمام میشود';
	}
	else
	{
		if($Bool==true)
			return false;
		return $x.' روز';
	}
	
}


function get_ExtantDownload($Extant)
{
	$per_day=intval($per_day);
	$Extant=intval($Extant);
	if($per_day==-1)
	{
		return 'نامحدود';
	}
	else
	{
		if($Extant==0)
		{
			return 'پایان';
		}
		else
		{
			return $Extant;
		}
	}
}


function CreateFormBuyVIP1($str,$ShowDescript){
	global $wpdb;
	$SiteURL=get_option("siteurl");
	$table_name = $wpdb->prefix . "vip_accounts";
	$accounts = $wpdb->get_results( "SELECT * FROM $table_name ORDER BY id desc" ,ARRAY_A);
	
	if (count($accounts) == 0)
	{
		$str .= '<b>اشتراک های VIP هنوز از سوی مدیریت تعریف نشده اند</b>';	
	}
	else
	{
		$tmp1='';
		$tmp2='<div style="text-align:right;">';
		$tmp1 .= '<form method="get" action="'.$SiteURL.'/">';
		$tmp1 .= 'اشتراک خود را انتخاب کنید <br><select name="buy_account_vip">';
		
		foreach($accounts as $item)
		{
			
			$tmp2.='<b>'.$item['name'].'<b> : '.$item['descript'].'<br>';
			
			$tmp1 .= '<option value="'.$item['id'].'">'.$item['name'].' '.(intval($item['cost'])/10).' تومان  | دانلود روزانه : ';
			
			if(intval($item['per_day'])==-1)
				$tmp1.='نامحدود';
			else
				$tmp1.=$item['per_day'];
			
			$tmp1 .='</option>';
		}
		$tmp2 .='</div><hr>';
		$tmp1 .= '</select><br/><div style="text-align:center;">';
		$tmp1 .= '<input type="submit" class="mrbtn_green" value="خرید اشتراک ویژه"/></div>';
		$tmp1 .= '</form>';
		
		if($ShowDescript==true)
		{
			$str .=$tmp2;
		}
		$str.=$tmp1;
	}
	
	return $str;
}



// شورت کد برای استفاده در صفحه خرید اشتراک
function form_buy_vip_func( $atts ) {
	$args = shortcode_atts( array(
        'descript' => 'true',
    ), $atts );
	$ShowDescript=true;
	if($args['descript']=='false')
	{
		$ShowDescript=false;
	}
		
	date_default_timezone_set("Asia/Tehran");
	$SiteURL=get_option('siteurl');
	$Login_URL=wp_login_url();
	$_Date=date("Y-m-d");
	$html = '<link rel="stylesheet" media="all" type="text/css" href="'.plugins_url('style.css',__FILE__).'">';
	
	if(is_user_logged_in()){
		
		global $wpdb;
		$current_user=wp_get_current_user();
		$user_id=$current_user->ID;
		$Exp_Vip=get_user_meta($user_id,'exp_vip',true);
		
		if($Exp_Vip)
		{
			$Last_Vip_Name=get_user_meta($user_id,'last_vip_name',true);
			$Last_Buy_Vip=get_user_meta($user_id,'last_buy_vip',true);
			$Exp_Per_Day=get_user_meta($user_id,'exp_per_day',true);
			$Extant_Daily=get_user_meta($user_id,'extant_daily',true);
			
			$diff = strtotime($Exp_Vip) - strtotime($_Date);
			$diffday=$diff / (60*60*24);
			
						
			if($diffday>=0)
			{
				// اشتراک کاربر منقضی نشده
				$html .='<div class="mrbox">';
				
				$html .= '<b>نام اشتراک : '.$Last_Vip_Name.'</b><br>';
				$html .= '<b>مدت اعتبار : '.get_exp_day($Exp_Vip,false).'</b><br>';
				$_ShowExp_Per_Day='نامحدود';
				if(intval($Exp_Per_Day)>=0)
				{
					$_ShowExp_Per_Day=$Exp_Per_Day;
				}			
				$html .= '<b>تعداد دانلود روز : '.$_ShowExp_Per_Day.'</b><br>';
				
				$html .= '<b>الباقی دانلود روزانه : '.get_ExtantDownload($Extant_Daily).'</b><br>';
				$html .= '</div>';
			}
			else
			{
				// منقضی شده
				$html .='<div class="mrbox">';
				$html .= '<b>اشتراک ویژه شما به پایان رسیده</b><br>
				شما می توانید اشتراک جدید بخرید<br>';
				$html=CreateFormBuyVIP1($html,$ShowDescript);
				$html .='</div>';
			}
		}
		else
		{	
			// Create Form Buy Vip
			$html .='<div class="mrbox">';
			$html=CreateFormBuyVIP1($html,$ShowDescript);
			$html .='</div>';
		}
	} 
	else 
	{
		$html .= '<div class="mrbox"><div style="text-align:center;">';
		$html .= '<a class="mrbtn_blue" href="'.$Login_URL.'">ابتدا باید وارد حساب کاربری خود شوید</a>';
		$html .= '</div></div>';
	}
	
	return $html;	
	
}
add_shortcode('form_buy_vip','form_buy_vip_func');






// شورت کد بخش ایجاد محتوای vip
function vip_data_func( $atts,$content = '') {
	$SiteURL=get_option('siteurl');
	$Login_URL=wp_login_url();
	$html = '<link rel="stylesheet" media="all" type="text/css" href="'.plugins_url('style.css',__FILE__).'">';
	
	
	
	if(is_user_logged_in())
	{
		global $wpdb;
		
		////////Edit
		$current_user=wp_get_current_user();
		$user_id=$current_user->ID;
		$Exp_Vip=get_user_meta($user_id,'exp_vip',true);
		
		if($Exp_Vip)
		{
			$x=get_exp_day($Exp_Vip,true);
			if($x)
			{
				// Message Expaire Vip
				$html .='<div class="mrbox">';
				$html .= '<b>اشتراک ویژه شما به پایان رسیده <br> شما اجازه مشاهده این بخش را ندارید</b><br>
				شما می توانید اشتراک جدید بخرید<br>';
				$html=CreateFormBuyVIP1($html,false);
				$html .='</div>';
			}
			else
			{
				// Show Content
				return $content;
			}
		}
		else
		{
			$html .='<div class="mrbox">';
			$html .='این بخش مخصوص اعضای vip سایت می باشد <br>';
			$html .='شما می توانید اشتراک VIP بخرید<br>';
			$html=CreateFormBuyVIP1($html,false);
			$html .='</div>';
		}
		
	} else {
		$html .='<div class="mrbox">';
		$html .='این بخش مخصوص اعضای vip سایت می باشد <br>';
		$html .='<a class="mrbtn_blue" href="'.$Login_URL.'">ابتدا باید وارد حساب کاربری خود شوید</a>';	
		$html .='<br> پس از ثبت نام و ورود به سایت اشتراک VIP بخرید ';
		$html .='</div>';
	}
	return $html;
}
add_shortcode('vip_data','vip_data_func');






// َشورت کد محصول فروشی و دانلود vip
function vip_linkdownload_func( $atts) {
	global $wpdb;
	$onlinebuy=true;
	$html = '<link rel="stylesheet"  media="all" type="text/css" href="'.plugins_url('style.css',__FILE__).'">';
	
	$SiteURL=get_option('siteurl');
	$Login_URL=wp_login_url();
	
	$args = shortcode_atts( array(
        'idproduct' => '0',
//        'baz' => 'default baz',
    ), $atts );	
	
	$current_user=wp_get_current_user();
	$user_id=$current_user->ID;
	
	$table_name = $wpdb->prefix . "pfd_products";
	$product = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table_name WHERE id = %d",$args['idproduct']) , ARRAY_A, 0);
				
	if(is_user_logged_in()){		
		$Exp_Vip=get_user_meta($user_id,'exp_vip',true);
		$Exp_Per_Day=intval(get_user_meta($user_id,'exp_per_day',true));
		$Extant_Daily=intval(get_user_meta($user_id,'extant_daily',true));
			
		
		if($Exp_Vip)
		{
			$x=get_exp_day($Exp_Vip,true);
			if($x)
			{
				// Message Expaire Vip
				$html .='<div class="mrbox">';
				$html .= '<b>اشتراک ویژه شما به پایان رسیده <br> شما اجازه مشاهده این بخش را ندارید</b><br>
				شما می توانید اشتراک جدید بخرید<br>';
				$html=CreateFormBuyVIP1($html,false);
				

			}
			else
			{
				// Show LinkDownload Vip
				// 1.Link download product for vip user
				
				if(get_ExtantDownload($Extant_Daily)=="پایان")
				{					
					$html .='<div class="mrbox">';
					$html .= '<b>تعداد دانلود روزانه شما به پایان رسیده</b><br>
					شما می توانید فردا مراجعه کنید<br>';
					// دکمه خرید تعداد دانلود روزانه (فشفشه ای ) بزودی
				}
				else
				{
				
					$html .='<div class="mrbox">';		
					$html .='نام محصول : '.$product['name'].'<hr>';
					$html .='قیمت : '.$product['cost'].' ریال '.'<hr>';
					$html .='<a class="mrbtn_purple" href="'.$SiteURL.'?vipdownload='.$product['id'].'"> رایگان دانلود کنید </a>';
					$onlinebuy=false;
					
				}
			}
		}
		else
		{
			$html .='<div class="mrbox">';
			$html .='این محصول ویژه اعضای VIP سایت می باشد<br>';
			$html .='شما می توانید اشتراک VIP بخرید<br>';
			$html=CreateFormBuyVIP1($html,false);			
		}
		
	} else {
		$html .='<div class="mrbox">';
		$html .='این محصول ویژه اعضای VIP سایت می باشد<br>';
		$html .='<a class="mrbtn_blue" href="'.$Login_URL.'">ابتدا باید وارد حساب کاربری خود شوید</a><br>';	
		$html .=' پس از ثبت نام و ورود به سایت اشتراک VIP بخرید <br>';
	}
	
	// 2.show button pay product
	if($onlinebuy)
	{
		$html .='<hr><b> همین الان محصول را با پرداخت آنلاین بخرید </b><br>';
		$html .='نام محصول : '.$product['name'].'<br>';
		$html .='قیمت : '.$product['cost'].' ریال '.'<br>';		
		$html .='<form name="frm_payline" action="'.$SiteURL.'" method="get">
			<input type="hidden" name="checkout" value="'.$product['id'].'">
			<input type="submit" name="submit" value="پرداخت آنلاین و دانلود" class="mrbtn_red" ></form>';
	}
	$html .='</div>';			
	return $html;
	
}
add_shortcode('vip_linkdownload','vip_linkdownload_func');









?>

 

 

لطفا برای تغییرات راهنمایی کنید

 

سپاس

0

به اشتراک گذاری این پست


لینک به پست

خیر دوست عزیز این مسئله از تنظیمات php سرور میباشد یادم نیست دقیقا کدوم بخشه که باید افزایش بدید ولی قبلا سر افزونه parspal بنده این مشکل رو داشتم

0

به اشتراک گذاری این پست


لینک به پست

محدودیت خواندن فایل در php است

0

به اشتراک گذاری این پست


لینک به پست

دوستان همچنان این مشکل رو داریم ...

تنظیمات محدودیت خواندن فایل در php را پیدا نکردیم 

راهنمایی لطفا ....

سپاس

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری