رفتن به مطلب

انجام یک فرآیند پس از پایان خرید


amin3d

پست های پیشنهاد شده

هو العلیم، سلام، من دنبال یک action یا filter هستم که زمانی فایر شود که برروی دکمه تکمیل شده در لیست سفارشات کلیک نماییم،

من حتی تابع مربوط به این رخداد را پیدا کردم و فیلتر مربوط به ان را اما نمی دونم چرا کد من run نمی شود.

mark_order_status در فایل class-wc-ajax.php قرار دارد و اکشن مربوطه هم woocommerce_order_edit_status است.

لینک به ارسال

هو العلیم، سلام مجدد، مشکل حل شد، ایراد از کدم بود.

من این سبکی استفاده کردم.

$this->loader->add_action( 'woocommerce_order_edit_status', $plugin_admin, 'status_completed');

اینم در کلاس دیگر::

	public function status_completed(  $order_id) {
		$status   = sanitize_text_field( $_GET['status'] );
		if(!empty($status) && $status=='completed')
		{
			global $wpdb;	
			$table_name = $wpdb->prefix . 'pana_points';	
			$order = new WC_Order($order_id);
			$user_id = $order->user_id;
			$refer = get_user_meta( $user_id, 'user_reffer', true ); 
		
			if(!empty($refer))
			{
				$user_info = get_user_by( 'login', $refer );
				$total=$order->get_total();
				$persent = 10;
				$porsant=ceil(($total*$persent)/100);			
				$wpdb->insert( 
					$table_name, 
					array( 
						'created_at' => current_time( 'mysql' ), 
						'user_id' => $user_info->ID, 
						'amount' => $porsant, 
						'order_id' => $order_id, 
						'type' => 'deposit', 
						'method' => 'site', 									
					) 
				);			
	
				
				
			}
		}


	}	

 

لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...