Создать магазин цифровых товаров или даже маркетплейс можно с помощью плагина Forminator – Contact Form, Payment Form & Custom Form Builder
и нескольких простых шагов. В этой статье расскажу, что нужно сделать для создании формы скачиваемых товаров woocommerce.
Создание собственного плагина
Для того чтобы форма публикации товаров работала нужно связать forminator и woocommerce.
- Заходим в файловый менеджер своего хостинга в папку с сайтом.
- Открываем папку и заходим в папку public_html
- Там ищем wp-content и открываем её
- В wp-content щёлкаем правой кнопкой мышки в любом месте и нажимаем «новая папка». Создаём её и называем mu-plugins
- После того как папка создана, кликаем по ней правой кнопкой и нажимаем изменить атрибут.
Устанавливаем разрешение 755. Сохраняем и закрываем
- Далее в этой папке создаём файл. Правой кнопкой мышки щёлкаем в любом месте и нажимаем «создать файл». Называем его mu-plugins.php
- Так же как и выше нужно изменить его атрибут файла установив ему права 644
- После того как всё сделано, нужно открыть файл (кликните по нему два раза, чтобы открылось после редактирования)
- Теперь в него нужно поместить код.
<?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();
}
}
}
10. Теперь сохраняем файл и можно выходить из файлового менеджера. Плагин появиться в консоли вашего сайта «Необходимых». Эти плагины не обновляются и всегда включены.