WC_REST_Products_Catalog_Controller::get_catalog_file_infoprivateWC 1.0

Get catalog file information based on fields.

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

Хуков нет.

Возвращает

Массив|WP_Error. Array with 'filepath', 'url', and 'directory' keys, or WP_Error on failure.

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

// private - только в коде основоного (родительского) класса
$result = $this->get_catalog_file_info( $fields );
$fields(массив) (обязательный)
Product/variation fields to include in the catalog.

Код WC_REST_Products_Catalog_Controller::get_catalog_file_info() WC 10.5.2

private function get_catalog_file_info( $fields ) {
	$upload_dir = wp_upload_dir();

	if ( ! empty( $upload_dir['error'] ) ) {
		return new WP_Error( 'upload_dir_error', $upload_dir['error'], array( 'status' => 500 ) );
	}

	$catalog_dir = trailingslashit( $upload_dir['basedir'] ) . 'wc-catalog/';
	$catalog_url = trailingslashit( $upload_dir['baseurl'] ) . 'wc-catalog/';

	$today        = gmdate( 'Y-m-d' );
	$catalog_hash = wp_hash( $today . wp_json_encode( $fields ) );
	$filename     = "products-{$today}-{$catalog_hash}.json";

	return array(
		'filepath'  => $catalog_dir . $filename,
		'url'       => $catalog_url . $filename,
		'directory' => $catalog_dir,
	);
}