Так скомбинируйте а и б и все
$c = $a . ':' . $b;
update_post_meta( $product_id, 'c', $c );
В фанкшн например на woocommerce_process_product_meta() — срабатывает при сохранении поста продукта:
add_action( 'woocommerce_update_product', 'update_custom_meta_field' );
function update_custom_meta_field( $product_id ) {
$a = get_post_meta( $product_id, 'a', true );
$b = get_post_meta( $product_id, 'b', true );
$c = $a . $b;
update_post_meta( $product_id, 'c', $c );
}
Сейчас мой код выглядит так, подставляется только значение $allPrices[$priceType] , а значение атрибута нет
add_action('itglx_wc1c_after_set_product_price', function (int $productOrVariationID) {
// получим данные по ценам в товаре/вариации записанные из выгрузки
// данные представлены массивом, где ключ это GUID типа цен, а значение это значение цены
$allPrices = get_post_meta($productOrVariationID, '_all_prices', true);
$priceType = '3135e328-512c-11ee-b780-047c167e051d';
$montshematopas = $product->get_attribute( 'optovoe-kolichestvo-ot' );
update_post_meta(
$productOrVariationID,
'b2bking_product_pricetiers_group_21594', $montshematopas . $allPrices[$priceType] ?? '');
});
});
add_action( 'woocommerce_update_product', 'update_custom_meta_field' );
function update_custom_meta_field( $product_id ) {
global $product;
$a = get_post_meta( $product_id, 'pa_optovoe-kolichestvo-ot' );
$b = get_post_meta( $product_id, 'b2bking_product_pricetiers_group_21594', true );
$c = $a .':'. $b .';';
update_post_meta( $product_id, 'b2bking_product_pricetiers_group_b2c', $c );
}
$a — не подставляется значение атрибута ‘pa_optovoe-kolichestvo-ot’
Сорян там же у вас атрибут, невнимательно посмотрел изначально… вот так будет работать
add_action( 'woocommerce_update_product', 'update_custom_meta_field' );
function update_custom_meta_field( $product_id ) {
global $product;
$product = wc_get_product( $product_id );
$a_raw = $product->get_attribute( 'УКАЖИТЕ_АТРИБУТ' );
$a = ! empty( $a_raw ) ? $a_raw : '';
$b = get_post_meta( $product_id, 'ВВЕДИТЕ_КЛЮЧ_ПОЛЯ', true );
$c = $a . $b;
update_post_meta( $product_id, 'КЛЮЧЬ_С', $c );
}
При сохранении это должно работать
А ваш код правильный почти, скорее всего потому что вы получаете объект продукта, поэтому функция $product->get_attribute(‘optovoe-kolichestvo-ot’) не может вернуть значение атрибута
вот так примерно должно быть
add_action('itglx_wc1c_after_set_product_price', function (int $productOrVariationID) {
$allPrices = get_post_meta($productOrVariationID, '_all_prices', true);
$priceType = '3135e328-512c-11ee-b780-047c167e051d';
$product = wc_get_product($productOrVariationID);
// Получить значение атрибута
$montshematopas = $product->get_attribute('optovoe-kolichestvo-ot');
update_post_meta($productOrVariationID, 'b2bking_product_pricetiers_group_21594', $montshematopas . $allPrices[$priceType] ?? '');
});