wc_render_invalid_variation_notice()
Shows a notice if variations are missing prices.
Хуки из функции
Возвращает
null
. Ничего (null).
Использование
wc_render_invalid_variation_notice( $product_object );
- $product_object(WC_Product) (обязательный)
- Product object.
Список изменений
С версии 3.6.0 | Введена. |
Код wc_render_invalid_variation_notice() wc render invalid variation notice WC 9.5.1
<?php function wc_render_invalid_variation_notice( $product_object ) { global $wpdb; // Give ability for extensions to hide this notice. /* phpcs:disable WooCommerce.Commenting.CommentHooks.MissingHookComment */ if ( ! apply_filters( 'woocommerce_show_invalid_variations_notice', true, $product_object ) ) { return; } /* phpcs: enable */ $variation_ids = $product_object ? $product_object->get_children() : array(); if ( empty( $variation_ids ) ) { return; } $variation_count = count( $variation_ids ); // Check if a variation exists without pricing data. // phpcs:disable WordPress.DB.PreparedSQL.NotPrepared $valid_variation_count = $wpdb->get_var( " SELECT count(post_id) FROM {$wpdb->postmeta} WHERE post_id in (" . implode( ',', array_map( 'absint', $variation_ids ) ) . ") AND ( meta_key='_subscription_sign_up_fee' OR meta_key='_price' ) AND meta_value >= 0 AND meta_value != '' " ); // phpcs:enable WordPress.DB.PreparedSQL.NotPrepared $invalid_variation_count = $variation_count - $valid_variation_count; if ( 0 < $invalid_variation_count ) { ?> <div id="message" class="inline notice notice-warning woocommerce-message woocommerce-notice-invalid-variation"> <p> <?php echo wp_kses_post( sprintf( /* Translators: %d variation count. */ _n( '%d variation does not have a price.', '%d variations do not have prices.', $invalid_variation_count, 'woocommerce' ), $invalid_variation_count ) . ' ' . __( 'Variations (and their attributes) that do not have prices will not be shown in your store.', 'woocommerce' ) ); ?> </p> <div class="woocommerce-add-variation-price-container"> <button type="button" class="button add_price_for_variations"><?php esc_html_e( 'Add price', 'woocommerce' ); ?></button> </div> </div> <?php } }