Forminator+woocommerce публикация цифровых товаров (создаём плагин)

Создать магазин цифровых товаров или даже маркетплейс можно с помощью плагина Forminator – Contact Form, Payment Form & Custom Form Builder

и нескольких простых шагов. В этой статье расскажу, что нужно сделать для создании формы скачиваемых товаров woocommerce.

Создание собственного плагина #

Для того чтобы форма публикации товаров работала нужно связать forminator и woocommerce. 

  1. Заходим в файловый менеджер своего хостинга в папку с сайтом. 
  1. Открываем папку и заходим в папку public_html
  1. Там ищем wp-content и открываем её
  1. В wp-content щёлкаем правой кнопкой мышки в любом месте и нажимаем «новая папка». Создаём её и называем mu-plugins
  1. После того как папка создана, кликаем по ней правой кнопкой и нажимаем изменить атрибут. 

Устанавливаем разрешение 755. Сохраняем и закрываем

  1.  Далее в этой папке создаём файл. Правой кнопкой мышки щёлкаем в любом месте и нажимаем «создать файл». Называем его mu-plugins.php
  1. Так же как и выше нужно изменить его атрибут файла установив ему права 644
  1. После того как всё сделано, нужно открыть файл (кликните по нему два раза, чтобы открылось после редактирования)
  1. Теперь в него нужно поместить код.
<?php
add_action( 'forminator_post_data_field_post_saved',  'wpmudev_auto_add_downloadable_file', 10, 4);
function wpmudev_auto_add_downloadable_file( $post_id, $field, $data, $cls ){
	$product = wc_get_product( $post_id );
	// Get downloads (if there is any)
    $downloads = (array) $product->get_downloads(); 
    // Only added once (avoiding repetitions
    if( sizeof($downloads) == 0 ){
        // Get post upload data
        $thumb_url = get_post_meta( $post_id, 'upload-1', true );
		if($thumb_url){
			// Prepare download data
			$file_title = basename($thumb_url);
			$file_md5   = md5($thumb_url);

			$download  = new WC_Product_Download(); // Get an instance of the WC_Product_Download Object
			
			// Set the download data
			$download->set_name($file_title);
			$download->set_id($file_md5);
			$download->set_file($thumb_url);

			$downloads[$file_md5] = $download; // Insert the new download to the array of downloads
			$product->set_downloads($downloads); // Set new array of downloads
			$product->set_downloadable('yes'); // To set the product type as downloadable
			$product->save();
		}
    }
}
Этот код свяжет цифровые товары woocommerce и плагин forminator

10. Теперь сохраняем файл и можно выходить из файлового менеджера. Плагин появиться в консоли вашего сайта «Необходимых». Эти плагины не обновляются и всегда включены.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *