WordPress Shortocode正在运行两次吗?

时间:2015-05-27 作者:raj aryan

我为我的柑橘支付网关开发了一个插件。我创建了一个shortcode 来管理它。几天前,它运行得非常好。现在我不知道是谁改变了什么shortcode 正在运行两次:(

这是我正在使用的代码。

add_shortcode(\'citrusafterpayment\', \'citrusafterpayment_function\');

function citrusafterpayment_function()
{

    mail(\'[email protected]\',\'check-in\',\'asd\');
    global $wpdb;
    if(isset($_REQUEST[\'TxStatus\']) && $_REQUEST[\'TxStatus\'] != \'\')
    {
       if($TxStatus == \'CANCELED\')
        {
           $return_msg = \'<div class="row-fluid"><div class="span12"> <div class="error">You have canceled your transaction.</div></div></div>\';
          return $return_msg;
        }
    }
}  
我正在我的一个网页上使用此短代码。每当那个页面被点击时,我都会收到两封电子邮件。

我在谷歌上搜索了一下,但没有找到有用的结果。

请帮帮我。

1 个回复
SO网友:Touqeer Shafi

试着这样做,这不是正确的解决方法,但它会解决你的问题。

function citrusafterpayment_function()
{
    static $calls = 0;

    if($calls == 0){ $calls++;
       mail(\'[email protected]\',\'check-in\',\'asd\');
       global $wpdb;
       if(isset($_REQUEST[\'TxStatus\']) && $_REQUEST[\'TxStatus\'] != \'\')
       {
           if($_REQUEST[\'TxStatus\'] == \'CANCELED\')
           {
           $return_msg = \'<div class="row-fluid"><div class="span12"> <div class="error">You have canceled your transaction.</div></div></div>\';
          return $return_msg;
           }
       }  
    }


} 

Edited:

您应该通过:$_REQUEST[\'TxStatus\'] 在if语句中$TxStatus 未在函数中定义。

结束

相关推荐

Functions.php中的入队样式

这对我没用functions.php: if( is_page_template( \'template-flat.php\' ) ) { function flatsome_scripts() { wp_enqueue_style( \'flatsome-style\', get_template_directory_uri() .\'/flatash/css/foundation.css\', array(), \'2.1\', \'all\'); }