在WordPress Hook中执行脚本

时间:2017-01-30 作者:Salman Patni

当有人在我的Woocommerce网站上下订单时,我想执行一个JavaScript代码,我在googled上搜索并找到这个动作挂钩add_action( \'woocommerce_checkout_order_processed\', \'function_name\', 1, 1 ); 然后在回调函数中echo "<script>alert(\'Working?\')<script>"; 但这并没有提醒为什么??我想在订单成功下达后立即执行代码a。

3 个回复
SO网友:CodeMascot

恐怕你不能那样做。因为浏览器中的JavaScript在DOM上工作。还有这个woocommerce_checkout_order_processed 钩子将在DOM加载之前激发。因此,您无法在启动此挂钩时执行此代码。

现在我有两个解决方案-

让它成为一个轴。因此,不需要重新加载DOM,就可以在DOM上执行JavaScript。

第二种解决方案相对容易,但不是完全证明。据我所知,应该有一个按钮,通过按下,订单应该得到处理,对吗?因此,您可以跟踪此按钮活动并对此活动发出警报。

SO网友:designdrumm

您需要在onload 或者它的一个函数,用于从PHP中激发echo。我认为alert()需要由函数触发,onload, select, click

在页眉中放置一个带有警报的函数,然后在页脚中调用该函数。只有当变量设置为true. 然后你回音truefalse 使用PHP将该变量。

在页面标题中

var value = "<?php echo $value; ?>";`

function checkMe() {
   if("true" === value) {
     alert(\'something\');
   }
}
之后,在页面的页脚内checkMe();

甚至把它作为身体标签onload 作用

<body onload="checkMe()">
这应该可以奏效。在页脚中调用时,您的页面将在警报之前加载,而在加载正文时,它将击败您的页面。如果需要显示内容,我通常将confirm()放在body onload中,将alert()放在页脚中以显示状态框。不过,你的要求取决于你的喜好。

SO网友:Pablo S G Pacheco

我想用钩子是安全的\'woocommerce_thankyou\' 在你的情况下。它在“订单接收”页面上触发。