Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wooms_id - скрыть из Заказа #398

Closed
aiiddqd opened this issue Mar 6, 2021 · 4 comments
Closed

wooms_id - скрыть из Заказа #398

aiiddqd opened this issue Mar 6, 2021 · 4 comments

Comments

@aiiddqd
Copy link
Collaborator

aiiddqd commented Mar 6, 2021

После оплаты заказа на почту падает письмо с описанием купленного товара, но также с товаром падает информация о его id в мой склад. Как сделать так, чтобы id товара не показывалось в заказе покупателя.

793-111783

DoD

  • плагин проверят наличие метаполей wooms_id & _wooms_id у Заказа - если есть wooms_id то он копируется в _wooms_id - wooms_id - удаляется - это важно чтобы wooms_id был невидим для писем и рендеринга
  • при создании заказа - запись идет сразу в _wooms_id
  • плагине создает новые заказы сразу с _wooms_id
  • но со старыми заказами он умеет работать как с wooms_id так и с _wooms_id
@eduardgermoniy
Copy link

Я решил эту проблему переопределив функцию вывода метаданных
` if ( ! function_exists( 'wc_display_item_meta' ) ) {

function wc_display_item_meta( $item, $args = array() ) {
	$strings = array();
	$html    = '';
	$args    = wp_parse_args(
		$args,
		array(
			'before'       => '<ul class="wc-item-meta"><li>',
			'after'        => '</li></ul>',
			'separator'    => '</li><li>',
			'echo'         => true,
			'autop'        => false,
			'label_before' => '<strong class="wc-item-meta-label">',
			'label_after'  => ':</strong> ',
		)
	);
	
	foreach ( $item->get_formatted_meta_data() as $meta_id => $meta ) {
		$value     = $args['autop'] ? wp_kses_post( $meta->display_value ) : wp_kses_post( make_clickable( trim( $meta->display_value ) ) );
		if (wp_kses_post( $meta->display_key ) != 'wooms_id'){
			$strings[] = $args['label_before'] . wp_kses_post( $meta->display_key ) . $args['label_after'] . $value;
		}
	}
	
	if ( $strings ) {
		$html = $args['before'] . implode( $args['separator'], $strings ) . $args['after'];
	}
	
	$html = apply_filters( 'woocommerce_display_item_meta', $html, $item, $args );
	
	if ( $args['echo'] ) {
		// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		echo $html;
	} else {
		return $html;
	}
}

}
`

@aiiddqd
Copy link
Collaborator Author

aiiddqd commented Mar 16, 2021

Решение ок, но хрупкое. Завтра эта функция поменяется и мы попадем.

Потому надо попробовать так:

  1. переписать код так чтобы ключ поля начинался с _ - вместо wooms_id > _wooms_id
  2. если это ок, то далее переписать логику так чтобы по заказам хранение было с новым ключем

@SliceofHuman
Copy link

Добрый день.
Ожидать стабильного решения этой проблемы в версии 8.2?

@aiiddqd
Copy link
Collaborator Author

aiiddqd commented Apr 13, 2021

@SliceofHuman код готов, делаем релиз

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants