Смешанный код php и jQuery для переменных продуктов Woocommerce - PullRequest
0 голосов
/ 29 марта 2019

У меня проблема с добавлением продукта в качестве переменной с вариациями. Я пытаюсь добавить аксессуары на каждую страницу продукта, но она работает для простого продукта и создает проблему в переменной или с вариациями

Я пытался решить это

//this variable code is not working//
 <?php if($currentProduct->get_type() == "variable"){ ?>
    var varRules = $(".variations_form").data('product_variations');
    <?php foreach($currentProduct->get_attributes() as $k=>$v){ ?>
    var attribute_<?= getVar($k) ?> = $("select[name=attribute_<?= $k ?>]").val();   
    <?php } ?> 
    $.each(varRules,function(){
      <?php 
      $cond = [];
      foreach($currentProduct->get_attributes() as $k=>$v){ 
      $cond[] = '(this.attributes["attribute_'.$k. '"]=='. 'attribute_'.getVar($k).' || this.attributes["attribute_'.$k. '"]=="")';
      } ?>                    
      if(<?=implode(" && ", $cond)?>){
        total = this.display_price; 
      }   
    });
    //not even this grouped one//  
    <?php } else if($currentProduct->get_type() == "grouped"){ ?>
     var total = 0;
     <?php foreach($currentProduct->get_children() as $k=>$id){ ?>                    
     total += $("[name='quantity[<?= $id ?>]']").val() * <?= getPrice(wc_get_product($id)); ?>;
     <?php } ?>
     <?php } else { ?>
     total = parseFloat(<?= getPrice($currentProduct) ?>);
 <?php } ?>

я хочу, чтобы это работало для переменных продуктов

1 Ответ

0 голосов
/ 30 марта 2019

Поскольку кажется, что вы используете php внутри некоторого кода jQuery, есть некоторые ошибки, такие как:

  • Ваши открывающие теги php должны всегда быть как <?php, но не как <?=
  • Если вы хотите отобразить что-то вроде переменной из php в jQuery, не забудьте echo
  • Не забудьте пропустить ; перед закрытием тегов php.

Я повторно посетил ваш код, но никто не может проверить его, так как это выдержка с отсутствующими вещами и контекст также отсутствует в вашем вопросе.

<?php if($currentProduct->get_type() == "variable"){ ?>
    var varRules = $(".variations_form").data('product_variations');
    <?php foreach($currentProduct->get_attributes() as $k => $v){ ?>
    var attribute_<?php echo getVar($k); ?> = $("select[name=attribute_<?php echo $k; ?>]").val();   
    <?php } ?> 
    $.each(varRules,function(){
        <?php 
        $cond = [];
        foreach($currentProduct->get_attributes() as $k=>$v){ 
            $cond[] = '(this.attributes["attribute_'.$k.'"]=='. 'attribute_'.getVar($k).' || this.attributes["attribute_'.$k.'"]=="")';
        } ?>                    
        if(<?php echo implode(" && ", $cond) ?>){
            total = this.display_price; 
        }   
    });
    //not even this grouped one//  
    <?php } else if($currentProduct->get_type() == "grouped"){ ?>
     var total = 0;
     <?php foreach($currentProduct->get_children() as $k=>$id){ ?>                    
     total += $("[name='quantity[<?php echo $id; ?>]']").val() * <?php echo getPrice(wc_get_product($id)); ?>;
     <?php } ?>
     <?php } else { ?>
     total = parseFloat(<?php echo getPrice($currentProduct); ?>);
 <?php } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...