我想覆盖插件The Events Calendar的文件plugins/the-events-calendar/tickets/meta-box.php
。
我按照教程Overwrite Plugin Files进行了操作,但这对我不起作用。
如何覆盖此文件?
我想在evetns Ticket部分添加新元数据如何在不编辑插件文件的情况下执行其他方式覆盖该插件文件。
答案 0 :(得分:4)
我没有您所指的付费Ticket插件,但我花了一些时间浏览可用的GitHub代码:
https://github.com/moderntribe/the-events-calendar/
看起来覆盖选项(即将文件从插件文件夹移动到当前主题目录中的tribe-events/
文件夹)仅适用于视图模板:
https://github.com/moderntribe/the-events-calendar/tree/master/views
您可以查看getTemplateHierarchy()
函数here的定义。
但是这个覆盖选项并不适用于/admin-views/tickets/meta-box.php
文件,因为它包含here和默认的PHP include()
:
include $this->path . 'admin-views/tickets/meta-box.php';
通过此方法调用here:
TribeEventsTicketsPro::instance()->do_meta_box( $post_id );
元数据来自:
add_action( 'add_meta_boxes',
array( 'TribeEventsTicketsMetabox', 'maybe_add_meta_box' ) );
查看此file的来源,我发现了这一部分:
<?php do_action( 'tribe_events_tickets_metabox_advanced',
get_the_ID(), NULL ); ?>
如果您想在事件编辑器中添加一些额外的票证UI,这可能就是您要找的内容。尝试加入此tribe_events_tickets_metabox_advanced
操作以添加额外的用户界面。
希望得到这个帮助。