WC_AJAX::load_variationspublic staticWC 1.0

Load variations via AJAX.

Метод класса: WC_AJAX{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

$result = WC_AJAX::load_variations();

Код WC_AJAX::load_variations() WC 9.9.5

public static function load_variations() {
	ob_start();

	check_ajax_referer( 'load-variations', 'security' );

	if ( ! current_user_can( 'edit_products' ) || empty( $_POST['product_id'] ) ) {
		wp_die( -1 );
	}

	// Set $post global so its available, like within the admin screens.
	global $post;

	$loop           = 0;
	$product_id     = absint( $_POST['product_id'] );
	$post           = get_post( $product_id ); // phpcs:ignore
	$product_object = wc_get_product( $product_id );
	$per_page       = ! empty( $_POST['per_page'] ) ? absint( $_POST['per_page'] ) : 10;
	$page           = ! empty( $_POST['page'] ) ? absint( $_POST['page'] ) : 1;
	$variations     = wc_get_products(
		array(
			'status'  => array( 'private', 'publish' ),
			'type'    => ProductType::VARIATION,
			'parent'  => $product_id,
			'limit'   => $per_page,
			'page'    => $page,
			'orderby' => array(
				'menu_order' => 'ASC',
				'ID'         => 'DESC',
			),
			'return'  => 'objects',
		)
	);

	if ( $variations ) {
		wc_render_invalid_variation_notice( $product_object );

		$base_cost = self::base_cost_or_null( $product_object );
		foreach ( $variations as $variation_object ) {
			self::render_variation_html( $product_object, $variation_object, $loop, $base_cost );
			++$loop;
		}
	}
	wp_die();
}