-2

我正在使用此代码来运行我的额外按钮。它将原始价格值更改为自定义值。是否可以再次单击名为“afterclickbutton”的按钮以获取原始值的价格 - 意思是获取正常价格并重置整个东西,因此可以再次单击并获取自定义值,然后单击并获取正常价格值等ETC。?

// Přidání bestpprice' vlastního 极 $bestprice = get_post_meta( $product->get_id(), '_bestprice', true);

if( ! empty($bestprice) ):

$bestprice = wc_get_price_to_display( $product, array( 'price' => $bestprice ) );
$reg_price = wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) );
$range = wc_format_sale_price( $reg_price, $bestprice );
?>
<!-- The button and hidden field --> 
<div class="bestprice-wrapper"><br>
    <a href="" class="get_bestprice button alt" id="get_bestprice"><?php _e('Aktivovat lepší cenu');?></a>
    <input type="hidden" name="bestprice" id="bestprice" class="bestprice" value="" />
  </div>
<!-- The jQuery code --> 
<script type="text/javascript">
    (function($){
        var b = '<?php echo $bestprice; ?>',
            i = 'input[name=bestprice]',
            p = 'p.price',
            r = '<?php echo $range; ?>',
            t = 'a#get_bestprice'
            u = true;
        $(t).click( function(e){
            e.preventDefault();
            if(u){
                $(p).html(r);  // Replacing price with the range
                $(i).val(b);  // Set the best price in hidden input field
                $(t).text(‚Activated'); // change button text
                $(t).removeClass('alt'); // Remove button 'alt' class for styling
                                  $(t).removeClass('get_bestprice')
                                          $(t).addClass(‚afterclickbutton')
                                  u = false;   // Disable button


            }
        });
    })(jQuery);
</script>
<?php
endif; }
4

1 回答 1

0

更新 2:

if( ! empty($bestprice) ):

$bestprice = wc_get_price_to_display( $product, array( 'price' => $bestprice ) );
$reg_price = wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) );
$range = wc_format_sale_price( $reg_price, $bestprice );
?>
<!-- The button and hidden field --> 
<div class="bestprice-wrapper"><br>
    <a href="" class="get_bestprice button alt" id="get_bestprice"><?php _e('Aktivovat lepší cenu');?></a>
    <input type="hidden" name="bestprice" id="bestprice" class="bestprice" value="" />
  </div>
<!-- The jQuery code --> 
<script type="text/javascript">
(function($){
        var b = '<?php echo $bestprice; ?>',
            o = $('p.price').clone().find('del').remove().end().text().trim().replace(/[^\d.,]/g, ''),
            i = 'input[name=bestprice]',
            p = 'p.price',
            r = '<?php echo $range; ?>',
            t = 'a#get_bestprice'
            u = true;
        $(t).click( function(e){
            e.preventDefault();
            if(u){
                if ($(p).attr('type') == undefined){ $(p).attr('type','_regular_price') };
                if ($(`${p}[type="_best_price"]`).length == 0) {
                    $(p).hide().after(`<p class="price" type="_best_price">${r}</p>`); // add best price and hide regulare
                }else{
                    $(`${p}[type="_regular_price"]`).hide();
                    $(`${p}[type="_best_price"]`).show();
                }
                //$(p).html(r);  // Replacing price with the range
                $(i).val(b);  // Set the best price in hidden input field
                $(t).text('Activated') // change button text
                .removeClass('alt get_bestprice') // Remove button 'alt' class for styling
                .addClass('afterclickbutton');
                u = false;   // Disable button
            }else{
                $(`${p}[type="_best_price"]`).hide();
                $(`${p}[type="_regular_price"]`).show();
                $(i).val(o);
                $(t).text('Active best price')
                .addClass('alt get_bestprice')
                .removeClass('afterclickbutton');
                u = true; 
            }
        });
    })(jQuery);
</script>
<?php
endif; }
于 2021-10-01T18:56:07.547 回答