You are currently viewing حل مشکل آپدیت نشدن لینک دانلود محصولات در ووکامرس برای خریداران قبلی

حل مشکل آپدیت نشدن لینک دانلود محصولات در ووکامرس برای خریداران قبلی


بارگذاری…

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

نحوه آپدیت کردن لینک محصولات دانلودی برای خریداران قبلی

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

بیشتر بخوانید: آموزش کار با افزونه Rankie به زبان ساده 

1- آموزش بروز رسانی لینک محصولات دانلودی در ووکامرس برای خریداران قبلی با افزونه

یکی از ساده ترین روش ها برای رفع مشکل آپدیت نشدن لینک دانلود محصولات در ووکامرس ، استفاده از افزونه می باشد. پلاگینی که ما قصد داریم در این آموزش به شما عزیزان معرفی کنیم، افزونه ACh Update Woo Download Links می باشد. این افزونه به صورت رایگان در مخزن وردپرس به ثبت رسیده که به سادگی می توانید آن را در سایت خود فعال کنید.

اگر سایت خود را با ووکامرس راه‌اندازی کرده‌اید و می‌ خواهید محصولات دانلودی را با آن بفروشید، با محصولات دانلودی مشکل بزرگی خواهید داشت. مشکل این است که اگر فایل دانلودی محصول ووکامرس را به روز کنید یا یک فایل جدید به لیست فایل ها اضافه کنید، کاربر شما نمی تواند لینک دانلود فایل جدید را ببیند و همچنان لینک های دانلودی را که هنگام خرید دریافت کرده است، مشاهده خواهد کرد. با این افزونه می توانید لینک های دانلود محصولات ووکامرس را برای سفارش های قبلی به روز کنید.

برای انجام اینکار، در ابتدا باید افزونه را در سایت خود نصب و فعال کنید. وارد پیشخوان وردپرس خود شده و سپس از بخش “افزونه ها” روی گزینه “افزودن” کلیک کنید. سپس نام افزونه را در باکس بالای صفحه وارد و سرچ نمائید. پس از اینکه افزونه برای شما نمایان شد کافیست آن را نصب و فعال کنید. همچنین اگر با طریقه نصب افزونه آشنایی ندارید به شما پیشنهاد می کنم که مطلب “چگونه در وردپرس افزونه اضافه کنیم؟ راه های نصب پلاگین در وردپرس” را مشاهده نمائید.

پس از نصب افزونه با پیکربندی تنظیمات آن، می توانید این مشکل را در سایت خود رفع نمائید.

بیشتر بخوانید: آموزش نمایش صحیح قیمت محصولات در ووکامرس 

2- حل مشکل آپدیت نشدن لینک دانلود محصولات در ووکامرس با کدنویسی

یکی دیگر از بهترین روش ها برای حل مشکل آپدیت نشدن لینک دانلود محصولات ووکامرس برای خریداران قبلی این است که کدهای زیر را به فایل functions.php قالب خود اضافه کنید. شما می توانید این فایل را در روت هاست خود پیدا کنید:

class WooCommerce_Legacy_Grant_Download_Permissions {
	protected static $instance = null;
	private function __construct() {
		if ( ! class_exists( 'WC_Admin_Post_Types', false ) ) {
			return;
		}
		remove_action( 'woocommerce_process_product_file_download_paths', array( 'WC_Admin_Post_Types', 'process_product_file_download_paths' ), 10, 3 );
		add_action( 'woocommerce_process_product_file_download_paths', array( $this, 'grant_download_permissions' ), 10, 3 );
	}
	public static function get_instance() {
		if ( null === self::$instance ) {
			self::$instance = new self;
		}
		return self::$instance;
	}
	public function grant_download_permissions( $product_id, $variation_id, $downloadable_files ) {
		global $wpdb;

		if ( $variation_id ) {
			$product_id = $variation_id;
		}

		if ( ! $product = wc_get_product( $product_id ) ) {
			return;
		}

		$existing_download_ids = array_keys( (array) $product->get_downloads() );
		$updated_download_ids  = array_keys( (array) $downloadable_files );
		$new_download_ids      = array_filter( array_diff( $updated_download_ids, $existing_download_ids ) );
		$removed_download_ids  = array_filter( array_diff( $existing_download_ids, $updated_download_ids ) );

		if ( ! empty( $new_download_ids ) || ! empty( $removed_download_ids ) ) {
			$existing_orders = $wpdb->get_col( $wpdb->prepare( "SELECT order_id from {$wpdb->prefix}woocommerce_downloadable_product_permissions WHERE product_id = %d GROUP BY order_id", $product_id ) );

			foreach ( $existing_orders as $existing_order_id ) {
				$order = wc_get_order( $existing_order_id );

				if ( $order ) {
					if ( ! empty( $removed_download_ids ) ) {
						foreach ( $removed_download_ids as $download_id ) {
							if ( apply_filters( 'woocommerce_process_product_file_download_paths_remove_access_to_old_file', true, $download_id, $product_id, $order ) ) {
								$wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}woocommerce_downloadable_product_permissions WHERE order_id = %d AND product_id = %d AND download_id = %s", $order->get_id(), $product_id, $download_id ) );
							}
						}
					}
					if ( ! empty( $new_download_ids ) ) {
						foreach ( $new_download_ids as $download_id ) {
							if ( apply_filters( 'woocommerce_process_product_file_download_paths_grant_access_to_new_file', true, $download_id, $product_id, $order ) ) {
								if ( ! $wpdb->get_var( $wpdb->prepare( "SELECT 1=1 FROM {$wpdb->prefix}woocommerce_downloadable_product_permissions WHERE order_id = %d AND product_id = %d AND download_id = %s", $order->get_id(), $product_id, $download_id ) ) ) {
									wc_downloadable_file_permission( $download_id, $product_id, $order );
								}
							}
						}
					}
				}
			}
		}
	}
}

add_action( 'admin_init', array( 'WooCommerce_Legacy_Grant_Download_Permissions', 'get_instance' ) );

پس از آن کافیست فایل را ذخیره کنید. سپس مشکل برای شما رفع خواهد شد.

 

سوالات متداول

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

دلیل بروز این مشکل چیست؟

این مشکلی است که به صورت پیش فرض در ووکامرس وجود دارد و به صورت معمول هر کس می تواند با آن مواجه شود.

جمع‌بندی

اگر شما انواع محصولات دانلودی به فروش می رسانید که پس از آپدیت، مشتریان قبلی نمی توانند فایل بروزشده را دریافت کنند، این مطلب می تواند برای شما مفید باشد. ما در این مطلب آموزش حل مشکل آپدیت نشدن لینک دانلود محصولات در ووکامرس را در اختیار شما قرار دادیم. امیدوارم مورد رضایت شما قرار گرفته باشد.