我想更改文件(例如,将其压缩到zip)uploaded via Gravity Forms File upload field before 它们将上载到Web服务器。
您知道修改(临时)文件的任何挂钩或解决方法吗before 它被发送到并存储在Web服务器上?
(我找到了解决方法after 文件已上载,但这不是我想要的。)
我想更改文件(例如,将其压缩到zip)uploaded via Gravity Forms File upload field before 它们将上载到Web服务器。
您知道修改(临时)文件的任何挂钩或解决方法吗before 它被发送到并存储在Web服务器上?
(我找到了解决方法after 文件已上载,但这不是我想要的。)
看起来我是用这个类来做这个的:http://gravitywiz.com/rename-uploaded-files-for-gravity-form/ 并在207行之后添加了过滤器,即。
// replace merge tags
$form = GFAPI::get_form( $entry[\'form_id\'] );
$value = GFCommon::replace_variables( $value, $form, $entry, false, true, false, \'text\' );
// MOD: add a filter here to hook into filename change
$value = apply_filters(\'gravity_forms_upload_filename\', $value, $entry);
$value
然后将包含上载文件的完整路径,该文件可以挂接并压缩,以便您可以返回zip路径。这是我用来加载的代码段GW_Rename_Uploaded_Files
:
add_action(\'init\', \'my_forms_rename_uploads\', 11);
if (!function_exists(\'my_forms_rename_uploads\')) {
function my_forms_rename_uploads() {
if (!class_exists(\'GW_Rename_Uploaded_Files\')) {return;}
$form_ids = array(
1, // list of form IDs to load renaming class for
);
// --- get all file upload fields ---
foreach ($form_ids as $form_id) {
$upload_field_ids = array();
$form = GFFormsModel::get_form_meta($form_id);
if (isset($form[\'fields\'])) {
// --- get upload field IDs ---
foreach ($form[\'fields\'] as $field) {
if ($field->type == \'fileupload\') {$upload_field_ids[] = $field->id;}
}
// --- set class arguments ---
$args = array(
\'form_id\' => $form_id,
\'field_id\' => $upload_field_ids,
\'template\' => \'{filename}\'
);
// --- initialize rename uploaded files class for fields ---
new GW_Rename_Uploaded_Files($args);
}
}
}
}
希望这有助于。。。我想知道上传文件夹中是否有自定义CSS文件。我从以前的开发人员那里继承了一个自定义主题,前端的大量样式都是从这个样式表派生出来的,它同样不在主题或插件文件夹中,而是wp-content/uploads 文件夹我正在努力找出它是如何推导出来的,但它确实存在。这是否被视为不良做法,或者是否有这样的用例?我相信之前的开发人员提到了Visual Composer或JS Composer以及编译更少的文件。。。但我对此不确定,他已经失去了联系,我想知道为什么我们要以这种方式使用样式表,因此这个问题是关于最佳实践的,