تبلیغات تبلیغات
حراجی دامنه های ویژهمشاهده
تبلیغات
تبلیغات تبلیغات

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

وردپرس , مقالات,آموزش,ترفند

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

 

حل مشکل آپدیت نشدن لینک دانلود ووکامرس

برای حل این مشکل باید ووکامرس را مجبور به بررسی و ارائه لینک‌های دانلود به‌صورت لحظه‌ای کنیم. وقتی در ووکامرس سفارشی ثبت می‌شود، در متاهای سفارش، لیست محصولات و لیست فایل‌های دانلود شده قرار می‌گیرد. حالا برای آپدیت کردن فایل دانلودی هیچ راهی نیست و کاربر فقط می‌تواند به فایل‌های قبلی دسترسی داشته باشد.

 

اما هیچ‌وقت محدودیتی در استفاده از وردپرس و ووکامرس نداریم. چرا که با استفاده از PHP و هوک‌های وردپرس می‌توانیم محدودیت‌ها را به صورت کامل کنار بگذاریم.

برای حل این مشکل کافیست کد زیر را به فایل 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' ) );

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

موفق باشید.

این مقاله چقدر براتون مفید بود؟

از ۱ تا ۵ امتیاز بدید.

میانگین رتبه 0 / 5. تعداد رای : 0

تا حالا کسی رای نداده! اولین نفر شما باشید.

دانلود

هاست ارزان، لایت اسپید، سرور مجازی منطبق با اسکریپت های 20script کلیک کنید >
مطلب مفیدی بود ؟
نویسنده : تیم محتوای 20اسکریپت 0 وردپرس , مقالات,آموزش,ترفند
لینک کوتاه مطلب : https://www.20script.ir/?p=55291
مطالب مرتبط
برخی از قالب های وبلاگ - بیست اسکریپت
قالب عشق بین انگشت هاقالب عشق بین انگشت ها
قالب دخترونه و آرایشقالب دخترونه و آرایش
قالب زیبای ماشینقالب زیبای ماشین
قالب فانتزی و طنز چِشمقالب فانتزی و طنز چِشم
قالب دختر رویاییقالب دختر رویایی
قالب وبلاگ دکوراسیونقالب وبلاگ دکوراسیون
قالب وبلاگ کلبه و درختقالب وبلاگ کلبه و درخت
قالب دختر زیباقالب دختر زیبا
قالب پسرونه غمگینقالب پسرونه غمگین
قالب عاشقانه قلبقالب عاشقانه قلب
سئو سایت
تبلیغات