抱歉,看起来你确实发现了一个错误。
我同意,对于一个会员有限的俱乐部,管理用户权限不需要manage_options,我想我已经解决了这一问题。
现在生活很忙,适当地测试任何变化都需要时间,但我会尽我所能来解决。
你好Josie,
非常感谢您的快速回复。我很清楚自己很忙,所以请不要太担心权限问题。
不幸的是,我在使用电子战时遇到了更大的问题。具体来说,当选择了一个文件进行上传时,网络表单(用于上传图像)用户前端的“提交”按钮不会从disabled=disabled更改。
我不确定,但这似乎与ewzG_对象似乎没有传递给浏览器客户端这一事实有关。我简要地看了一下您的代码,并进行了测试,以确认$ewzG是在ewz-upload.php的第79到87行创建的,但wp_localize_script()似乎不起作用。
可能还有第二个问题与应该显示“Clear”按钮的JS事件有关,但在加载ewzG对象之前,我无法测试该问题。
我已经研究过一些可能性,但对WP核心或插件代码还不太熟悉,我正在努力确定发生了什么
一种可能性是,wp_enqueue_scripts钩子的执行时间在新的完整站点编辑模型中被延迟,因此wp_localize_script()可能会在附加ewz-upIoad.js文件之前执行。我曾尝试修改entrywizard.php中的第99行,以将ewz_register函数附加到早期的操作挂钩(即get_header),但这似乎没有任何区别。
正如你可能猜测的那样,我有点困惑。如果你对我可能尝试解决这个问题的事情有任何建议,我将不胜感激。
DW特纳
禁用提交按钮问题的跟进:
再次问候Josie,
我似乎已经成功地解决了提交按钮的问题,但我还没有真正测试修复程序。
在ewz_upload.php中,第90行的代码(wp_localize_script函数)替换为:
//wp_localize_script(“ewz上传”、“ewzG_$webform_id”、ewz_html_esc($ewzG));//替换前面的ling并将ewzG_对象的呈现执行移动到页脚挂钩$ewz_object=json_encode(ewz_html_esc($ewzG));$ewz_object_name=“ewzG_”$webform_id;add_action('wp_footer',function()use($ewz_object_name,$ewz_ object){printf('<script type=“text/javascript”>var%s=%s</script>',$ewz_object_name,$ewz _object);});
这个改变似乎有效,但我还不知道你的插件是否还有其他部分需要以类似的方式改变执行顺序。我对你可能有的任何意见或建议感兴趣。提前谢谢。
DW特纳
我无法重现这个问题,所以很难说。到目前为止,我还没有从其他人那里听说过。
首先要尝试的通常是暂时禁用所有其他插件,然后逐个重新启用它们,以查看是否存在冲突。从最近安装或更新的任何内容开始。
如果结果是冲突,请告诉我是哪个插件。如果不是,那么我可能需要更多关于托管和用户环境的信息——操作系统、php版本、浏览器…。最近有什么变化吗?
你好Josie,
我理解。我将继续测试,并让您知道我的发现。正如您所知,在共享Apache服务器2.4.57上使用PHP 8.1.8和MySQL 5.47.1运行的WP 6.2.2的新安装中发生了此问题。我能够在运行相同版本堆栈的WAMPServer的干净本地安装中复制此问题,只使用EntryWizard和EWZ-Rateding作为活动插件。已经安装了一些其他插件,但尚未激活。
哦,对不起。我创建了一个儿童主题“Twenty TwentyThree”。对孩子的唯一改动是修饰性的,并使用WP 6.2.2的完整站点编辑功能进行了修改。主题中没有添加或更改的代码。
我尝试了Twenty-TwentyThree,用它(我认为)重现了这个问题。似乎发生的情况是,没有找到显示要上传的图像的javascript函数。
目前我没有时间做更多的事,但我建议改变你的主题,可能改为老主题,可能会有所帮助。