Не работает node save для цен опций товара уберкарты

Главные вкладки

Аватар пользователя Кришпер Кришпер 8 мая 2018 в 13:49

Обычная цена сохраняется нормально(когда две меняешь),

<?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] =&gt; Array
                        (
                            [
6] =&gtstdClass Object
                                
(
                                    [
nid] =&gt9008
                                    
[oid] =&gt6
                                    
[cost] =&gt0.00000
                                    
[price] =&gt10.00000
                                    
[weight] =&gt0
                                    
[ordering] =&gt; -50
                                    
[name] =&gtДлина 4 метра
                                    
[aid] =&gt2
                                
)?>

Комментарии

Аватар пользователя Кришпер Кришпер 8 мая 2018 в 17:46

Ну, пока так(массив создан 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();  
                   }
                }
            };      
}
?>