前几天写的SEO系列,看的人多,也有人说方法不对,误人子弟。
其实有一点我想澄清下,我写的文章也好,方法也罢,大多来源于自己项目,也许我不是每个细节都写得很详细,很透彻。所以大家的效果也是有差别的。话说回来,本来写公众号就是为了记录工作片段,自己研究的东西就应该事无巨细的倾囊相授么?
面对一些方法,与其去质疑,还不如静下心踏踏实实的测试。也许你还在质疑的时候,别人已经拿到排名了。
就像我之前写的创建内容的方法,确实是AI写的,也确实能把关键词做到1-2页。不光是我自己,其他人也有成功的案例。
算了,也不纠结这些事情了。
今天说说Woocommerce 产品太多(几万条产品),怎么批量去修改产品价格和促销价。
市场里应该有这种产品打折的插件。因为我站点情况不一样,我需要更新数据库里的价格而不仅仅是显示,所以只能自己写个小程序来遍历产品。
Woocommerce 产品分Variable和Simple ,这两种产品的方法是不一样的。
Simple产品,取产品原价是 $product->get_regular_price() ,促销价可以根据自己的具体折扣计算。 然后用程序更新产品价格和折扣价,保存到数据库。

if ( isset($sale_price) && ! empty($sale_price) ) {

    $product->set_sale_price($sale_price);

    $product->set_price($sale_price);  

} else {

    $product->set_price($regular_price);  

}

$product->set_regular_price($regular_price);

$product->save(); 

 echo $product_id."-".$regular_price."-".$sale_price."已处理!";

}

Variable,取产品原价是$product->get_variation_regular_price('min') 
促销价根据具体折扣计算,然后程序需要遍历每个变体,我是通过Curl Post Rest api更新,并保存到数据库。

$variations = $product->get_available_variations();

 foreach ( $variations as $variation ) {

  $variation_id = $variation['variation_id'];

$url="https://yoursite.com/wp-json/wc/v3/products/".$product_id."/variations/".$variation_id;

$consumer_key = 'KEY';

$consumer_secret = 'Secret';

$headers = array(

    'Authorization' => 'Basic ' . base64_encode($consumer_key.':'.$consumer_secret )

);

$data = array(

    'regular_price' => $regular_price,

    'sale_price' => $sale_price

);

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_TIMEOUT, 240);

curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_USERPWD, "$consumer_key:$consumer_secret");

$resp = curl_exec($curl);

$status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); 

curl_close($curl);

}

echo $product_id."-".$regular_price."-".$sale_price."已处理";

最后还有值得注意的一点,因为产品很多,如果直接执行php, 会运行超时,所以要产品分页去执行。

$offset = isset($_GET['offset']) ? intval($_GET['offset']) : 0;

$args = [

    'post_type' => 'product',

    'posts_per_page' => 1,

    'offset' => $offset,

    'post_status' => 'publish', 

    'orderby' => 'ID', 

    'order' => 'DESC', 

];

$products = wc_get_products( $args );

$count = count($products); 

每次执行结束后,跳到下一页。

 $offset = $offset + 1;

 header("Refresh: 3; URL=?offset=".$offset); 

这样就能完美的更改数据库里面的价格和促销价。当然产品标题,产品分类,产品tag ,产品描述等等,都可以用这种方法去更改。  

大家可以自己思考下,如果我们新建一个站点,产品的题目 ,描述,tag ,短描述全部变了,是不是就等于新站了,Google 里会不会认为是新网站,我测试的结果:是 。
今天的文章就写到这里。我是做跨境的老王,欢迎大家找我聊聊SEO,vx:6860145 (不用问在不在,可以直奔主题)


点赞(1) 打赏

评论列表 共有 0 条评论

暂无评论

服务号

订阅号

备注【拉群】

商务洽谈

微信联系站长

发表
评论
立即
投稿
返回
顶部