如何在Woocommerce中的属性上方添加自定义文本?

时间:2018-04-04 08:55:59

标签: php css wordpress woocommerce

我正在使用此功能在属性标签旁边添加文字,但我需要在属性的上方或下方,例如"请选择所需的颜色"在pa_colour属性的正上方(或下方)。

add_filter( 'woocommerce_attribute_label', 'custom_attribute_label', 10, 3 );
function custom_attribute_label( $label, $name, $product ) {
    $taxonomy = 'pa_'.$name;

    if( $taxonomy == 'pa_size' )
        $label .= '<div class="custom-label">' . __('MY TEXT', 'woocommerce') . '</div>';

    return $label;
}

问题是,我不知道该怎么做。如果你能指导我,我会非常感激。

我想看到的内容:

我现在看到的是什么:

1 个答案:

答案 0 :(得分:1)

没有钩子可以很容易地得到你想要的东西。因为html看起来像这样:

<table class="variations" cellspacing="0">
    <tbody>
        <?php foreach ( $attributes as $attribute_name => $options ) : ?>
            <tr>
                <td class="label"><label for="<?php echo sanitize_title( $attribute_name ); ?>"><?php echo wc_attribute_label( $attribute_name ); ?></label></td>
                <td class="value">
                    <?php
                        $selected = isset( $_REQUEST[ 'attribute_' . sanitize_title( $attribute_name ) ] ) ? wc_clean( stripslashes( urldecode( $_REQUEST[ 'attribute_' . sanitize_title( $attribute_name ) ] ) ) ) : $product->get_variation_default_attribute( $attribute_name );
                        wc_dropdown_variation_attribute_options( array( 'options' => $options, 'attribute' => $attribute_name, 'product' => $product, 'selected' => $selected ) );
                        echo end( $attribute_keys ) === $attribute_name ? apply_filters( 'woocommerce_reset_variations_link', '<a class="reset_variations" href="#">' . esc_html__( 'Clear', 'woocommerce' ) . '</a>' ) : '';
                    ?>
                </td>
            </tr>
        <?php endforeach;?>
    </tbody>
</table>

您正在使用wc_attribute_label标记内的<td>过滤器。 您想要实现的目标至少需要在tr td。{/ p>

我建议您继续使用所拥有的内容,然后使用cssjQuery获得您想要达到的效果。

最好将woocommerce/templates/single-product/add-to-cart/variable.php复制到yourtheme/woocommerce/single-product/add-to-cart/variable.php并对该文件进行编辑。