变量SKU未在单页上显示

时间:2018-02-06 15:20:37

标签: php wordpress woocommerce

我在显示SKU变体时遇到一些问题,我修改了单个产品页面以将变体显示为列表,这是我使用的代码(主题的功能,尝试使用标准主题,没有变化)< / p>

function woocommerce_variable_add_to_cart() {
		global $product, $post;
		$variations = $product->get_available_variations();
		foreach ($variations as $key => $value) {
		?>
		<form action="<?php echo esc_url( $product->add_to_cart_url() ); ?>"method="post" enctype='multipart/form-data'>
			<input type="hidden" name="variation_id" value="<?php echo $value['variation_id']?>" />
			<input type="hidden" name="product_id" value="<?php echo esc_attr( $post->ID ); ?>" />
			<?php
			if(!empty($value['attributes'])){
				foreach ($value['attributes'] as $attr_key => $attr_value) {
				?>
				<input type="hidden" name="<?php echo $attr_key?>" value="<?php echo $attr_value?>">
				<?php
				}
			}
			?>
			<table>
				<tbody>
					<tr>
						<td>
							<b><?php echo implode('/', $value['attributes']);?></b>
						</td>
						<td>
							<?php echo $value['price_html'];?>
						</td>
						<td>
							<div class="woocommerce-variation-add-to-cart variations_button">
	<?php
		do_action( 'woocommerce_before_add_to_cart_quantity' );
		woocommerce_quantity_input( array(
			'min_value'   => apply_filters( 'woocommerce_quantity_input_min', $product->get_min_purchase_quantity(), $product ),
			'max_value'   => apply_filters( 'woocommerce_quantity_input_max', $product->get_max_purchase_quantity(), $product ),
			'input_value' => isset( $_POST['quantity'] ) ? wc_stock_amount( $_POST['quantity'] ) : $product->get_min_purchase_quantity(),
		) );
		do_action( 'woocommerce_after_add_to_cart_quantity' );
	?>
	<button type="submit" class="single_add_to_cart_button button alt"><?php echo esc_html( $product->single_add_to_cart_text() ); ?></button>
	<input type="hidden" name="add-to-cart" value="<?php echo absint( $product->get_id() ); ?>" />
	<input type="hidden" name="product_id" value="<?php echo absint( $product->get_id() ); ?>" />
	<input type="hidden" name="variation_id" class="variation_id" value="0" /></div>
                                  <?php 
global $product;
?>
<div class>



    <?php if ( wc_product_sku_enabled() && ( $product->get_sku() || $product->is_type( 'variation' ) ) ) : ?>


        <span class="sku_wrapper"><?php esc_html_e( 'Artikelnummer: ', 'woocommerce' ); ?> <span class="sku"><?php echo ( $sku = $product->get_sku() ) ? $sku : esc_html__( 'N/A', 'woocommerce' ); ?></span></span>


  <?php endif;?>
                            </div>
                            
						</td>
					</tr>
				</tbody>
			</table>
		</form>
		<?php
		}
}

唯一不起作用的是获取Variation的SKU,而不是获得产品本身的SKU或者根本没有任何东西(下面的代码就是这种情况,任何提示/帮助都会受到赞赏。我也试过了实现这个Variable Product Sku not Working 但它也无效

在预先感谢(我很难在代码窗口中显示所有的系数,所以我必须使用代码段功能,为此付出了代价)

1 个答案:

答案 0 :(得分:2)

您的代码有点难以阅读,但尝试使用带有变体帖子ID的get_post_meta。

$variation_sku = get_post_meta( $value['variation_id'] , '_sku', TRUE );

看看是否有效。