【发布时间】:2020-03-08 23:23:46
【问题描述】:
我试图在这个钩子中运行 javascript,但它不能工作。我很确定这个钩子被触发了,因为我可以对数据库执行 php 插入并写入 debug_log。请问有没有办法解决呢?
函数.php
add_action( 'woocommerce_order_status_changed', 'your_function', 10, 3 );
function your_function( $order_id, $old_status, $new_status ){
// This doesnt work
// Enqueued script with localized data.
wp_enqueue_script( 'order_status_changed_1', 'https://www.gstatic.com/firebasejs/7.3.0/firebase-app.js');
wp_enqueue_script( 'order_status_changed_2', 'https://www.gstatic.com/firebasejs/7.3.0/firebase-auth.js');
wp_enqueue_script( 'order_status_changed_3', 'https://www.gstatic.com/firebasejs/7.3.0/firebase-firestore.js');
wp_enqueue_script( 'order_status_changed_4', plugin_dir_url( __FILE__ ) . 'js/scripts_v1.js' );
// Localize the script with new data
$data = array(
'order_number' => $order_id,
'order_status' => $new_status,
'action' => 'update_order_status'
);
wp_localize_script( 'order_status_changed_4', 'data', $data );
// This work (Below code)
global $wpdb;
$sql = $wpdb->prepare("INSERT INTO `test`(`order_id`, `status`) VALUES (%s,%s)",$order_id,$new_status);
$wpdb->query($sql);
error_log("Trigger");
}
scripts_v1.js
var action = data.action;
if(action == "update_order_status" ){
console.log("here");
db.collection("orders").doc(data.order_number).update({
orderStatus : data.order_status
})
.then(function() {
console.log("Document successfully updated!");
})
.catch(function(error) {
// The document probably doesn't exist.
console.error("Error updating document: ", error);
});
}
【问题讨论】:
标签: javascript php wordpress firebase hook-woocommerce