WC_Order::add_order_note()publicWC 1.0

Adds a note (comment) to the order. Order must exist.

Метод класса: WC_Order{}

Возвращает

int. Comment ID.

Использование

$WC_Order = new WC_Order();
$WC_Order->add_order_note( $note, $is_customer_note, $added_by_user );
$note(строка) (обязательный)
Note to add.
$is_customer_note(int)
Is this a note for the customer?.
$added_by_user(true|false)
Was the note added by a user?.
По умолчанию: false

Код WC_Order::add_order_note() WC 9.3.3

public function add_order_note( $note, $is_customer_note = 0, $added_by_user = false ) {
	if ( ! $this->get_id() ) {
		return 0;
	}

	if ( is_user_logged_in() && current_user_can( 'edit_shop_orders', $this->get_id() ) && $added_by_user ) {
		$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.', '', sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) ) ) : 'noreply.com'; // WPCS: input var ok.
		$comment_author_email  = sanitize_email( $comment_author_email );
	}
	$commentdata = apply_filters(
		'woocommerce_new_order_note_data',
		array(
			'comment_post_ID'      => $this->get_id(),
			'comment_author'       => $comment_author,
			'comment_author_email' => $comment_author_email,
			'comment_author_url'   => '',
			'comment_content'      => $note,
			'comment_agent'        => 'WooCommerce',
			'comment_type'         => 'order_note',
			'comment_parent'       => 0,
			'comment_approved'     => 1,
		),
		array(
			'order_id'         => $this->get_id(),
			'is_customer_note' => $is_customer_note,
		)
	);

	$comment_id = wp_insert_comment( $commentdata );

	if ( $is_customer_note ) {
		add_comment_meta( $comment_id, 'is_customer_note', 1 );

		do_action(
			'woocommerce_new_customer_note',
			array(
				'order_id'      => $this->get_id(),
				'customer_note' => $commentdata['comment_content'],
			)
		);
	}

	/**
	 * Action hook fired after an order note is added.
	 *
	 * @param int      $order_note_id Order note ID.
	 * @param WC_Order $order         Order data.
	 *
	 * @since 4.4.0
	 */
	do_action( 'woocommerce_order_note_added', $comment_id, $this );

	return $comment_id;
}