我试图在此挂钩中运行javascript,但无法正常工作。我很确定会触发此挂钩,因为我可以将php插入数据库并写入debug_log。我想问一下它有解决方案吗?
function.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);
});
}