在WooCommerce中以编程方式创建产品和订单测试性能

最模板 2022-06-27 14:34 WooCommerce教程

这是关于如何将测试产品和订单动态添加到您的 WooCommerc 商店,通过允许您自动添加 1000 多个产品和订单,此功能可用于测试您的网站设置和服务器的限制。请注意,尽管您可以设置任意数量的产品和订单,但此代码并未经过优化以绕过 PHP 时间限制。这意味着您可以一次创建的产品/订单数量(在刷新并再次运行之前)取决于您的服务器设置。尝试从较小的数字开始。

 

该片段进入您的子主题的functions.php 文件。

 

<?php

add_action( 'template_redirect', 'createProducts' );

function createProducts(){

	// Set number of products to create
	$number_of_products = 1000;

	for ($i=1; $i <= $number_of_products; $i++) {
		// First we create the product post so we can grab it's ID
		$post_id = wp_insert_post(
			array(
				'post_title' => 'Product ' . $i,
				'post_type' => 'product',
				'post_status' => 'publish'
			)
		);

		// Then we use the product ID to set all the posts meta
		wp_set_object_terms( $post_id, 'simple', 'product_type' ); // set product is simple/variable/grouped
		update_post_meta( $post_id, '_visibility', 'visible' );
		update_post_meta( $post_id, '_stock_status', 'instock');
		update_post_meta( $post_id, 'total_sales', '0' );
		update_post_meta( $post_id, '_downloadable', 'no' );
		update_post_meta( $post_id, '_virtual', 'yes' );
		update_post_meta( $post_id, '_regular_price', '' );
		update_post_meta( $post_id, '_sale_price', '' );
		update_post_meta( $post_id, '_purchase_note', '' );
		update_post_meta( $post_id, '_featured', 'no' );
		update_post_meta( $post_id, '_weight', '11' );
		update_post_meta( $post_id, '_length', '11' );
		update_post_meta( $post_id, '_width', '11' );
		update_post_meta( $post_id, '_height', '11' );
		update_post_meta( $post_id, '_sku', 'SKU11' );
		update_post_meta( $post_id, '_product_attributes', array() );
		update_post_meta( $post_id, '_sale_price_dates_from', '' );
		update_post_meta( $post_id, '_sale_price_dates_to', '' );
		update_post_meta( $post_id, '_price', '11' );
		update_post_meta( $post_id, '_sold_inpidually', '' );
		update_post_meta( $post_id, '_manage_stock', 'yes' ); // activate stock management
		wc_update_product_stock($post_id, 1000, 'set'); // set 1000 in stock
		update_post_meta( $post_id, '_backorders', 'no' );
	}

	// Once the products have been created, now can create the orders
	createOrders();
}

function createOrders(){

	// Set numbers of orders to create
	$number_of_orders = 100;

	for ($i=0; $i < $number_of_orders; $i++) {
		global $woocommerce;

		// Get a random number of products, between 1 and 10, for the order
		$products = get_posts( array(
			'post_type' => 'product',
			'posts_per_page' => rand(1,10),
			'orderby' => 'rand'
		) );

		// Set order address
		$address = array(
			'first_name' => 'John ' . rand(1,200),
			'last_name'  => 'Doe',
			'company'    => 'zuimoban.com',
			'email'      => 'john@zuimoban.com',
			'phone'      => '760-555-1212',
			'address_1'  => '123 Main st.',
			'address_2'  => '104',
			'city'       => 'San Diego',
			'state'      => 'Ca',
			'postcode'   => '92121',
			'country'    => 'US'
		);

		// Now we create the order
		$order = wc_create_order();

		// Add products randomly selected above to the order
		foreach ($products as $product) {
			$order->add_product( wc_get_product($product->ID), 1); // This is an existing SIMPLE product
		}

		$order->set_address( $address, 'billing' );

		$order->calculate_totals();
		$order->update_status("Completed", 'Imported order', TRUE); 
	}
}

 

 

相关文章

  1. 在WooCommerce产品页面上显示销售总数

    让客户知道产品的受欢迎程度确实有助于转化。一种方法是在产品页面上显示产品已售出的次数。WooCommerce 已经记录了产品的销售次数,因此在产品页面上显示这些数据非常容易。 woo...

    2022-07-10
  2. 为注销的用户重命名WooCommerce我的帐户菜

    在您的 WooCommerce 商店中,您可能会有一个指向我的帐户页面的菜单链接。通常,无论用户是否登录,此链接都会显示我的帐户。但是,如果我们想让它为注销的用户说一些更有用的东西...

    2022-07-10
  3. 按国家地区禁用WooCommerce支付网关

    如果您使用 WooCommerce 向多个国家/地区销售商品,您可能需要阻止来自某些国家/地区的客户使用特定的支付网关。例如,您可能只想向美国客户提供 PayPal。或者您可能希望阻止澳大利亚...

    2022-07-10
  4. 变量$order获取WooCommerce订单信息

    在WooCommerce我怎样才能得到订单总额或者我怎样才能得到订单物品或者可能是订单 ID、客户 ID、账单信息、付款方式、总退款等等,使用变量$order可以获取。可能有 $order_id 可用。在这种...

    2022-04-15
  5. 在WooCommerce中以编程方式隐藏价格

    如果您具有编码技能并且更喜欢构建自己的解决方案,则可以以编程方式隐藏 WooCommerce 价格。使用插件是一种简单的方法,但创建自定义解决方案可以为您提供更多控制和灵活性。此外...

    2022-08-01
  6. 使用$product获取WooCommerce产品信息ID、S

    在WooCommerce中,使用变量$product 如何获取产品 SKU或者我怎样才能得到产品的简短描述或者可能是产品库存水平、运输等级、税收等级、价格、正常价格、销售价格等等.并非总是可以访问...

    2022-04-15
  7. 在WooCommerce列表页显示商品品牌

    安装好WooCommerce Brands 插件网站将显示品牌分类,商品也会出现品牌链接,但是商品列表页如何也显示商品品牌呢?仅将这些添加到单个产品页面中。 在woomcomerce当中添加以下代码: ad...

    2022-04-15
  8. 在 WooCommerce中自定义地址格式

    每个国家都有不同的地址格式,例如,美国使用缩写的州名,而澳大利亚通常显示完整的州名。这些不是一成不变的规则,它们总是可以改变的。如何 ? 通过当然是自定义代码: 此代码...

    2022-07-26
  9. 在WooCommerce单个产品图像上禁用缩放、灯

    如果WooCommerce您不销售具有大量细节的高端产品,您的客户可能不需要直接放大您的产品图像的能力。而且,如果您不上传高分辨率图像,那么缩放功能就毫无用处。这同样适用于灯箱和...

    2022-07-10
  10. 在WooCommerce添加产品视频代替图片

    WooCommerce 不允许您添加产品视频,但是我们可以用几行代码添加它,不需要第三方插件。 WooCommerce 产品图片用于说明您的产品,但有些产品需要视频才能更好地展示它们。在这里,我将...

    2022-04-04