plugin updates

This commit is contained in:
Tony Volpe
2024-07-16 13:57:46 +00:00
parent 41f50eacc4
commit 8f93917880
1529 changed files with 259452 additions and 25451 deletions

View File

@@ -0,0 +1,202 @@
<?php
/**
* WP Media Folder
*
* @package WP Media Folder
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPMediaFolder;
defined('ABSPATH') || die('No direct script access allowed!');
/**
* Class WPMFHelper
*/
class Helper
{
/**
* Retrieve attachments list from folder
*
* @param integer|string|array $value Taxonomy term(s)
* @param string $field Select taxonomy term by. Possible values are term_id, name, slug or term_taxonomy_id. Default value is term_id.
* @param boolean $include_children Whether or not to include children, false to include only files in the folder, true to get files also in the subfolser. Defaults to true.
*
* @return WP_Query
*/
public static function getAttachmentsByFolder($value, $field = 'term_id', $include_children = true)
{
$args = array(
'posts_per_page' => -1,
'post_type' => 'attachment',
'post_status' => 'inherit',
'tax_query' => array(
array(
'taxonomy' => 'wpmf-category',
'field' => $field,
'terms' => $value,
'include_children' => $include_children
)
)
);
$query = new WP_Query($args);
return $query;
}
/**
* Get folders of file
*
* @param integer $file_id ID of file
*
* @return array|WP_Error The requested term data or empty array if no terms found.
* WP_Error if any of the taxonomies don't exist.
*/
public static function getFoldersOfFile($file_id)
{
$terms = wp_get_object_terms($file_id, 'wpmf-category');
return $terms;
}
/**
* Retrieve list of folder objects.
*
* @return array
*/
public static function getAllFolders()
{
$folders = get_categories(
array(
'hide_empty' => false,
'taxonomy' => 'wpmf-category',
'pll_get_terms_not_translated' => 1
)
);
return $folders;
}
/**
* Create a folder
*
* @param string $name Name of folder
* @param integer $parent Parent of folder
*
* @return array|boolean|\WP_Error
*/
public static function createFolder($name, $parent = 0)
{
$inserted = wp_insert_term($name, 'wpmf-category', array('parent' => $parent));
if (is_wp_error($inserted)) {
return false;
}
return $inserted;
}
/**
* Remove a folder by ID
*
* @param integer $folder_id ID of folder
*
* @return boolean|integer|WP_Error True on success, false if term does not exist. Zero on attempted
* deletion of default Category. WP_Error if the taxonomy does not exist.
*/
public static function removeFolder($folder_id)
{
$delete = wp_delete_term($folder_id, 'wpmf-category');
return $delete;
}
/**
* Move a folder
*
* @param integer $folder_id The ID of the folder
* @param integer $target_folder_id The ID of the target folder
*
* @return array|WP_Error Returns Term ID and Taxonomy Term ID
*/
public static function moveFolder($folder_id, $target_folder_id)
{
$folder = wp_update_term((int) $folder_id, 'wpmf-category', array('parent' => (int) $target_folder_id));
return $folder;
}
/**
* Rename a folder
*
* @param integer $folder_id The ID of the folder
* @param string $new_name New name of folder
*
* @return array|WP_Error Returns Term ID and Taxonomy Term ID
*/
public static function renameFolder($folder_id, $new_name)
{
$folder = wp_update_term((int) $folder_id, 'wpmf-category', array('name' => $new_name));
return $folder;
}
/**
* Move a file to a folder
*
* @param integer $file_id The ID of the file
* @param integer $folder_id The ID of the target folder
* @param boolean $append If false will delete difference of folders. Default false.
* @param boolean $move_multiple If true, all translate attachment move too. Default true.
*
* @return void
*/
public static function moveFile($file_id, $folder_id, $append = false, $move_multiple = true)
{
wp_set_object_terms((int) $file_id, (int) $folder_id, 'wpmf-category', $append);
if ($move_multiple) {
if (is_plugin_active('polylang/polylang.php') || is_plugin_active('polylang-pro/polylang.php')) {
global $polylang;
$polylang_current = $polylang->curlang;
foreach ($polylang->model->get_languages_list() as $language) {
if ((int) $language->term_id === (int) $polylang_current->term_id) {
continue;
}
$translation_id = $polylang->model->post->get_translation($file_id, $language);
if (($translation_id) && (int) $translation_id !== (int) $file_id) {
wp_set_object_terms(
(int) $translation_id,
(int) $folder_id,
'wpmf-category',
$append
);
// reset order of file
update_post_meta(
(int) $translation_id,
'wpmf_order',
0
);
}
}
} elseif (defined('ICL_SITEPRESS_VERSION') && ICL_SITEPRESS_VERSION) {
global $sitepress;
$trid = $sitepress->get_element_trid($file_id, 'post_attachment');
if ($trid) {
$translations = $sitepress->get_element_translations($trid, 'post_attachment', true, true, true);
foreach ($translations as $translation) {
if ((int) $translation->element_id !== (int) $file_id) {
wp_set_object_terms(
(int) $translation->element_id,
(int) $folder_id,
'wpmf-category',
$append
);
// reset order of file
update_post_meta(
(int) $translation->element_id,
'wpmf_order',
0
);
}
}
}
}
}
}
}