Обычная цена сохраняется нормально(когда две меняешь),
<?phpfunction clone_tov_price_api() {
if ( gsp_user_role_check() ) {
foreach( $_POST['nodes'] as $nid => $nodeArr ) {
$node = node_load($nid);
$node->price = $nodeArr['price'];
$node->sell_price = $nodeArr['price'];
if ( isset( $nodeArr['attributes'] ) ) {
foreach( $nodeArr['attributes'] as $aid => $attr) {
foreach( $attr as $oid => $optionVal ) {
if ( isset( $node->attributes[$aid]->options[$oid]->price ) )
$node->attributes[$aid]->options[$oid]->price = $optionVal;
}
}
}
node_save($node);
print_r( $node);
exit;
}
}
}?>
А у опций в массиве заменяется, но в бд нет.
<?php
[options] => Array
(
[6] => stdClass Object
(
[nid] => 9008
[oid] => 6
[cost] => 0.00000
[price] => 10.00000
[weight] => 0
[ordering] => -50
[name] => Длина - 4 метра
[aid] => 2
)?>
Комментарии
uc_product_update тоже меняет ток основную цену, но не опции
Ну, пока так(массив создан c формы другой страницы с node_load).
<?php
foreach( $_POST['nodes'] as $nid => $nodeArr ) {
db_update('uc_products')
->fields(array('sell_price' => $nodeArr['price'] ))
->condition('vid', $nodeArr['vid'] )
->execute();
if ( isset( $nodeArr['attributes'] ) ) {
foreach( $nodeArr['attributes'] as $aid => $attr) {
foreach( $attr as $oid => $optionVal ) {
db_update('uc_product_options')
->fields(array('price' => $optionVal))
->condition('nid', $nid )
->condition('oid', $oid )
->execute();
}
}
};
}
?>