2016-04-05 4 views
2

Я в ситуации. У меня есть загружаемый продукт, и до сих пор его покупают более 3500 клиентов. При обновлении загружаемого продукта, по-видимому, я испортил и некоторые удалили доступ к текущим 3500 + клиентам, в результате чего появилось много путаных писем. Клиенты по-прежнему демонстрируют покупку цифрового продукта при покупке своих счетов.Как я могу генерировать/предоставлять разрешения на загрузку в WooCommerce?

Таким образом, я отчаянно спрашиваю, как я могу генерировать/предоставлять разрешения на загрузку WooCommerce клиентам, которые уже купили мой загружаемый продукт?

Я думаю о SQL-запросе, но не совсем уверен, что мне нужно будет перемещать и куда? Что еще больше усложняет, мне нужны только разрешения для предоставления клиентам конкретного продукта!

+0

Не совсем уверен в таблице, колонн или кода, но [это] (http://woocommerce.wp-a2z.org/oik_api/wc_downloadable_product_permissions/) может быть полезно, если у вас есть или может собрать массив идентификаторов заказа. – Ekin

+0

@Ekin Большое спасибо за ответ. У меня есть идентификатор заказа. Однако где я могу поместить идентификаторы в код? Где я могу разместить идентификатор продукта? –

ответ

0

@Tyree B. Надеюсь, что вы решили проблему, если да, то пожалуйста, поделитесь здесь еще вы можете следовать следующим раствором: (. № заказа)

  1. Loop через ваши всех пользователей и получить свой заказ и добавьте новый загружаемый продукт в существующем порядке, используя функцию woocommerce wc_add_order_item (вам также нужно будет добавить мета-количество продуктов, количество и идентификатор priduct и т. д.)

  2. Проникните всех клиентов и создайте новый заказ (подарочный заказ с использованием кода) для каждого клиента и добавить продукт в заказ. По правилам/функциям woocommerce автоматически все пользователи могут загружать продукт со своей учетной записи по ссылке для загрузки.

Надеюсь, что это вам поможет.

1

Я придумал следующее решение. Вы можете поместить этот код в functions.php, открыть любую страницу в backend или frontend (для запуска functions.php), а затем прокомментировать или удалить этот код. Это не повлияет на заказы, которые уже имеют разрешения на загрузку.

add_action('init','my_activate_download_permissions'); 
function my_activate_download_permissions() { 

$orders = get_posts(array(
    'post_type'  => 'shop_order', 
    'post_status' => 'wc-completed', 
    'posts_per_page' => -1 
)); 

foreach ($orders as $order) { 
    wc_downloadable_product_permissions($order->ID, false); 
}} 
+0

Работает ли это? Я надел functions.php, но все же я не вижу никакого эффекта! –

+0

Да, это сработало для меня. Вот ссылка на документацию https://docs.woocommerce.com/wc-apidocs/function-wc_downloadable_product_permissions.html Важно, чтобы все файлы были доступны и доступны для загрузки. – Arkady

Смежные вопросы