在过去几年中,有许多关于如何创建自定义注释类型的线程和主题。大部分情况下,我认为这是可能的(因为WooCommerce做到了),但建议使用comment_meta
相反
我的问题是WooCommerce如何添加comment_type
属于order_note
评论管理下拉列表?
对WooCommerce代码的重新修订没有任何帮助。欢迎任何指示。
添加类型为的注释的示例order_note
:
/**
* Adds a note (comment) to the order
*
* @access public
* @param string $note Note to add
* @param int $is_customer_note (default: 0) Is this a note for the customer?
* @return id Comment ID
*
* *file is class-wp-order.php*
*/
public function add_order_note( $note, $is_customer_note = 0 ) {
$is_customer_note = intval( $is_customer_note );
if ( is_user_logged_in() && current_user_can( \'manage_woocommerce\' ) ) {
$user = get_user_by( \'id\', get_current_user_id() );
$comment_author = $user->display_name;
$comment_author_email = $user->user_email;
} else {
$comment_author = __( \'WooCommerce\', \'woocommerce\' );
$comment_author_email = strtolower( __( \'WooCommerce\', \'woocommerce\' ) ) . \'@\';
$comment_author_email .= isset( $_SERVER[\'HTTP_HOST\'] ) ? str_replace( \'www.\', \'\', $_SERVER[\'HTTP_HOST\'] ) : \'noreply.com\';
$comment_author_email = sanitize_email( $comment_author_email );
}
$comment_post_ID = $this->id;
$comment_author_url = \'\';
$comment_content = $note;
$comment_agent = \'WooCommerce\';
$comment_type = \'order_note\';
$comment_parent = 0;
$comment_approved = 1;
$commentdata = apply_filters( \'woocommerce_new_order_note_data\', compact( \'comment_post_ID\', \'comment_author\', \'comment_author_email\', \'comment_author_url\', \'comment_content\', \'comment_agent\', \'comment_type\', \'comment_parent\', \'comment_approved\' ), array( \'order_id\' => $this->id, \'is_customer_note\' => $is_customer_note ) );
$comment_id = wp_insert_comment( $commentdata );
add_comment_meta( $comment_id, \'is_customer_note\', $is_customer_note );
if ( $is_customer_note )
do_action( \'woocommerce_new_customer_note\', array( \'order_id\' => $this->id, \'customer_note\' => $note ) );
return $comment_id;
}
上一个问题:如果我可以添加一个
comment_type
除了
comment_meta
在适当的情况下。我的问题是,我应该在哪里寻找如何做到这一点的指南/示例
最合适的回答,由SO网友:Nicolai Grossherr 整理而成
回答您的第一个问题:»WooCommerce如何添加comment_type
属于order_note
评论管理下拉列表?«。从…起woocommerce-admin-init.php
:
function woocommerce_admin_comment_types_dropdown( $types ) {
$types[\'order_note\'] = __( \'Order notes\', \'woocommerce\' );
return $types;
}
add_filter( \'admin_comment_types_dropdown\', \'woocommerce_admin_comment_types_dropdown\' );
当然,为了避免冲突,你必须自己做,比如:
add_filter( \'admin_comment_types_dropdown\', \'wpse114725_admin_comment_types_dropdown\' );
function wpse114725_admin_comment_types_dropdown( $types ) {
//replace the \'your...\'-parts as needed
$types[\'your_note_type\'] = __( \'Your Note Type\', \'your-text-domain\' );
return $types;
}
关于您的第二个问题,即上一个问题:»我应该在哪里寻找如何做到这一点的指南/示例?«。从外观上看,您可以从woocommerce文件中获得一个很好的示例。
此外,您需要的功能都有文档记录,例如:wp_insert_comment, wp_update_comment 和wp_delete_comment. 这可能不是法典中最全面的部分,但重要的信息就在那里,当然你可以随时查看来源:wp-includes/comment.php.
根据你写的我想你知道你的方式comment meta
, i、 e。add_comment_meta()
, get_comment_meta()
, update_comment_meta()
和delete_comment_meta()
- 你也可以在法典中找到,源文件与上面链接的相同。
因为你还没有发布一个真正需要解决的问题,我想说的就是这个问题——当然,这根本不是问题,但这应该能让你很好地了解从哪里开始。
你可能想看看@brasofilo对How to add filter in “Comments” at the admin panel?, 有关更多信息和一些其他关键字,请参考。