找不到用于 Woocommerce 订单备注的操作挂钩
Cannot find which action hook to use for Woocommerce order notes
我正在尝试在 Woocommerce 向订单添加订单备注时触发一个功能。我完成了对我的功能的测试,它运行良好。但只有在添加订单备注时才是触发它的正确时机。
一家跟踪公司将跟踪代码添加到 Woocommerce 订单备注中并将其标记为完成。我已经尝试使用订单状态更改操作挂钩以及电子邮件操作挂钩,但发现订单备注添加在末尾,因此需要通过挂钩捕获它。
这是我的代码:
add_action( 'woocommerce_email_order_meta', 'tracking_add_order_notes_to_completed_email', 10 );
function tracking_add_order_notes_to_completed_email() {
//do something
global $woocommerce, $post;
$order = new WC_Order($post->ID);
$order_id = $order->get_id();
global $wpdb;
$comment_info = $wpdb->get_results("SELECT * FROM `wp_comments` WHERE `comment_post_ID` = " .$order_id. " AND `comment_content` REGEXP 'Tracking ID'");
// display the results
foreach($comment_info as $info) {
$tracking_id = $info->comment_content;
$tracking_id_sanitized = str_ireplace("Tracking ID : ","",$tracking_id);
}
$meta_exist = metadata_exists('post', $order_id, '_wcst_order_trackno');
$meta_val = get_post_meta( $order_id, '_wcst_order_trackno' );
if($meta_exist == 1){
if(!empty($meta_val[0]))
{
}else{
$trno = $tracking_id_sanitized;
update_post_meta( $order_id, '_wcst_order_trackno', $trno, '');
}
}else{
$trno = $tracking_id_sanitized;
add_post_meta( $order_id, '_wcst_order_trackno', $trno);
}
error_log('['.date("F j, Y, g:i a e O").']'."This hook just got triggered"."\n", 3, $_SERVER['DOCUMENT_ROOT'] . "/log/my-errors.log");
}
如有任何帮助,我们将不胜感激。
P.S Woocommerce 今年最近似乎也贬值了很多动作挂钩。
您可以使用 woocommerce_order_note_added
操作:
add_action( 'woocommerce_order_note_added', 'my_function_after_order_note_was_added', 10, 2 );
function my_function_after_order_note_was_added ( $comment_id, $order ) {
//Your code goes here...
}
我正在尝试在 Woocommerce 向订单添加订单备注时触发一个功能。我完成了对我的功能的测试,它运行良好。但只有在添加订单备注时才是触发它的正确时机。
一家跟踪公司将跟踪代码添加到 Woocommerce 订单备注中并将其标记为完成。我已经尝试使用订单状态更改操作挂钩以及电子邮件操作挂钩,但发现订单备注添加在末尾,因此需要通过挂钩捕获它。
这是我的代码:
add_action( 'woocommerce_email_order_meta', 'tracking_add_order_notes_to_completed_email', 10 );
function tracking_add_order_notes_to_completed_email() {
//do something
global $woocommerce, $post;
$order = new WC_Order($post->ID);
$order_id = $order->get_id();
global $wpdb;
$comment_info = $wpdb->get_results("SELECT * FROM `wp_comments` WHERE `comment_post_ID` = " .$order_id. " AND `comment_content` REGEXP 'Tracking ID'");
// display the results
foreach($comment_info as $info) {
$tracking_id = $info->comment_content;
$tracking_id_sanitized = str_ireplace("Tracking ID : ","",$tracking_id);
}
$meta_exist = metadata_exists('post', $order_id, '_wcst_order_trackno');
$meta_val = get_post_meta( $order_id, '_wcst_order_trackno' );
if($meta_exist == 1){
if(!empty($meta_val[0]))
{
}else{
$trno = $tracking_id_sanitized;
update_post_meta( $order_id, '_wcst_order_trackno', $trno, '');
}
}else{
$trno = $tracking_id_sanitized;
add_post_meta( $order_id, '_wcst_order_trackno', $trno);
}
error_log('['.date("F j, Y, g:i a e O").']'."This hook just got triggered"."\n", 3, $_SERVER['DOCUMENT_ROOT'] . "/log/my-errors.log");
}
如有任何帮助,我们将不胜感激。
P.S Woocommerce 今年最近似乎也贬值了很多动作挂钩。
您可以使用 woocommerce_order_note_added
操作:
add_action( 'woocommerce_order_note_added', 'my_function_after_order_note_was_added', 10, 2 );
function my_function_after_order_note_was_added ( $comment_id, $order ) {
//Your code goes here...
}