将 CSS 类添加到 php 函数 WooCommerce 变体下拉列表

Add CSS class to php function WooCommerce variation dropdown

提问人:Frederik 提问时间:11/9/2023 最后编辑:LoicTheAztecFrederik 更新时间:11/9/2023 访问量:17

问:

在下面的PHP函数中,我想在黄色标记中添加一个CSS类(请参见下面的屏幕截图):

enter image description here

有什么解决办法吗?

我想添加一个CSS类来将价格向右移动。

--------------- PHP 下面的 ---------------

/**
 * Display price in variation options dropdown for products that have only one attribute.
 *
 * @param  string $term Existing option term value.
 * @return string $term Existing option term value or updated term value with price.
 */
function display_price_in_variation_options( $term ) {
    $product = wc_get_product();
    $id      = $product->get_id();
    if ( empty( $term ) || empty( $id ) ) {
        return $term;
    }
    if ( $product->is_type( 'variable' ) ) {
        $product_variations = $product->get_available_variations();
    } else {
        return $term;
    }
    foreach ( $product_variations as $variation ) {
        if ( count( $variation['attributes'] ) > 1 ) {
            return $term;
        }
        $attribute = array_values( $variation['attributes'] )[0];
        if ( $attribute === $term ) {
        $term .= ' (' . wp_strip_all_tags( wc_price ( $variation['display_price']) ) . ') ';      
        }
    }
    return $term;
}

add_filter( 'woocommerce_variation_option_name', 'display_price_in_variation_options' );




add_action( 'woocommerce_before_single_product', 'move_variations_single_price', 1 );
function move_variations_single_price(){
  global $product, $post;
  if ( $product->is_type( 'variable' ) ) {
    add_action( 'woocommerce_single_product_summary', 'replace_variation_single_price', 10 );
  }
}

function replace_variation_single_price() {
  ?>
    <style>
      .woocommerce-variation-price {
        display: none;
    
      }
    </style>
    <script>
      jQuery(document).ready(function($) {
        var priceselector = '.product p.price';
        var originalprice = $(priceselector).html();

        $( document ).on('show_variation', function() {
          $(priceselector).html($('.single_variation .woocommerce-variation-price').html());
        });
        $( document ).on('hide_variation', function() {
          $(priceselector).html(originalprice);
        });
      });
    </script>
  <?php
}

我试图添加但没有结果。<span class="">

PHP CSS WooCommerce 下拉列表

评论

0赞 CBroe 11/9/2023
如果它被渲染为原生元素,那么你就不能这样做。 元素只允许文本内容,你不能将其他 HTML 元素(如 span)嵌套在那里。那时,您将需要某种自定义替换。selectoption

答: 暂无答案