1

我正在尝试使用两个 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");
  }

 ?>

使用上面的代码,“支付插件短代码存在!” 已打印出来,但我无法在我的网站上获得付款插件的付款按钮。

像 [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");

关于我的问题的一点建议会对我有所帮助。

4

1 回答 1

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>```


于 2019-10-31T09:57:18.470 回答