我尝试使用两个wordpress插件在我的网络中实现预约功能。
两个插件分别是预留插件和付款插件。
预订插件有一些预订步骤,例如,选择服务,选择日期,时间等。
我想插入一个"付款按钮"由预约插件的付款步骤中的付款插件提供。
我在预订插件的php文件(付款步骤)中写下了代码,
<?php
if ( shortcode_exists( 'payment_button' ) ) {
echo nl2br("Payment plugin shortcode exists!\n");
echo do_shortcode( '[payment_button]' );
}
else {
echo nl2br("No payment plugin shortcode exists!\n");
}
?>
使用上面的代码,&#34;支付插件短代码存在!&#34;已打印出来,但我无法在网络上获得付款插件的付款按钮。
像[gallery]这样的Wordpress内置短代码已经起作用了,我做了一个测试。
<?php echo do_shortcode( '[galley]' ); ?>
我应该检查两个插件或其他任何内容?
加载两个插件的订单?
Enquescripts两个插件中使用的脚本顺序?
我试图加载预订插件晚于支付插件,将下面的代码添加到预订插件的主要php文件,但这不起作用。 (参考:https://gist.github.com/bappi-d-great/26808240df88dd1fc3fe)
<?php
/*
*
* Use the code at the beginning of a plugin that you want to be laoded at last
*
*/
function this_plugin_last() {
$wp_path_to_this_file = preg_replace('/(.*)plugins\/(.*)$/',
WP_PLUGIN_DIR."/$2", __FILE__);
$this_plugin = plugin_basename(trim($wp_path_to_this_file));
$active_plugins = get_option('active_plugins');
$this_plugin_key = array_search($this_plugin, $active_plugins);
array_splice($active_plugins, $this_plugin_key, 1);
array_push($active_plugins, $this_plugin);
update_option('active_plugins', $active_plugins);
}
add_action("activated_plugin", "this_plugin_last");
关于我的问题的一些建议对我有帮助。
答案 0 :(得分:0)
我在您的代码中更改了几行,就可以了
<?php
if ( shortcode_exists( 'community-events-7day' ) ) {
echo ("Plugin shortcode exists!\n");
echo do_shortcode( '[community-events-7day]' );
}
else {
echo ("No Plugin shortcode exists!\n");
}
?>
</div>```