这似乎很难理解。我创建了一个插件,它可以在我和其他一些博客的不同安装上正常工作。
但在另一个人的博客上,它失败了。在完成调试和控制台条目之后,我相信我找到了故障的根源:
在流程的某个步骤中,插件使用ajax调用函数:
jQuery(document).ready(function($) {
var data = {
\'action\': \'mp_throwcontent_2\',
\'MedioPay_postid\': mp_mypostid,
\'MedioPay_outputs\': mp_outputs,
\'MedioPay_number\': mp_numberof_payments,
\'MedioPay_userID\': mp_userID,
\'Mediopay_newCounter\': mp_newCounter,
\'MedioPay_firstPartner\': mp_firstPartner,
\'MedioPay_secondPartner\': mp_secondPartner,
\'MedioPay_thirdPartner\': mp_thirdPartner,
\'MedioPay_fourthPartner\': mp_fourthPartner,
\'MedioPay_shareQuote\': mp_sharing,
\'MedioPay_preview\': mp_preview
};
console.log("turning data over");
jQuery.post(my_ajax_object.ajax_url, data, function(response) {
console.log("unlock 2 " + response);
mp_unlockContent2(payment, response);
});
});
然后调用函数:add_action ( \'wp_ajax_nopriv_mp_throwcontent_2\', \'mp_throwcontent_2\' );
function mp_throwcontent_2() {
// some ifs and so on
// echo "output"
}
插件启动时,Ajax将本地化wp_localize_script( \'ajax-script\', \'my_ajax_object\',
array( \'ajax_url\' => admin_url( \'admin-ajax.php\' ) ) );
一个小怪癖:我两次不小心把它本地化了,也在这里:wp_localize_script( \'ajax-script\', \'ajax_object\',
array( \'ajax_url\' => admin_url( \'admin-ajax.php\' ), \'we_value\' => 1234 ) );
这会是个问题吗?所有这些在一些博客上都非常有效。但在其中一个例子中,当ajax启动时,操作就停止了。没有错误,调试中没有任何内容,它只是停止。
有人知道我能做些什么让它运行吗?如果失败,是否有回退调用?
啊,更奇怪的是:这个插件在那个博客上运行得很好,但突然停止了工作,而所有者告诉我,他甚至没有更改wordpress的安装。