程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Woocommerce中以编程方式创建新订单大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在Woocommerce中以编程方式创建新订单?

开发过程中遇到在Woocommerce中以编程方式创建新订单的问题如何解决?下面主要结合日常开发的经验,给出你关于在Woocommerce中以编程方式创建新订单的解决方法建议,希望对你解决在Woocommerce中以编程方式创建新订单有所启发或帮助;

问题出在您的动作挂钩上。使用以下钩子:

add_action('woocommerce_checkout_process', 'create_vip_order');

function create_vip_order() {

  global $woocommerce;

  $address = array(
      'first_name' => '111Joe',
      'last_name'  => 'Conlin',
      'company'    => 'Speed SocIEty',
      'email'      => 'joe@tesTing.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();

  // The add_product() function below is located in /plugins/woocommerce/includes/abstracts/abstract_wc_order.php
  $order->add_product( get_product('275962'), 1); // This is an exisTing SIMPLE product
  $order->set_address( $address, 'billing' );
  //
  $order->calculate_@R_183_10586@ls();
  $order->@R_618_9531@e_status("Completed", 'imported order', TRUE);  
}

确保给定的产品ID在系统中。

解决方法

我最困难的时间是在WooCommerce中以编程方式创建订单。我正在使用下面的代码,是否正在创建订单,但是我无法获得客户信息或添加到订单的产品线项目。创建的新订单只是访客,没有任何物品,用户信息等。

问题似乎是,一旦创建了订单对象,尝试向订单中添加数据时就会失败。

function create_vip_order() {

  global $woocommerce;

  $address = array(
      'first_name' => '111Joe','last_name'  => 'Conlin','company'    => 'Speed Society','email'      => 'joe@tesTing.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();

  // The add_product() function below is located in /plugins/woocommerce/includes/abstracts/abstract_wc_order.php
  $order->add_product( get_product( '275962' ),1 ); // This is an exisTing SIMPLE product
  $order->set_address( $address,'billing' );
  //
  $order->calculate_@R_183_10586@ls();
  $order->@R_618_9531@e_status("Completed",'Imported order',TRUE);

}

add_action( 'woocommerce_init','create_vip_order' );

这是我在日志中遇到的错误:

[19-Apr-2016 21:16:38 UTC] php Fatal error:  Uncaught Error: Call to a member function add_product() on Boolean in /Users/joe/Sites/speedsociety-2/wp-content/themes/ss/lib/contests/order.php:107
Stack trace:
#0 /Users/joe/Sites/speedsociety-2/wp-includes/plugin.php(525): create_vip_order('')
#1 /Users/joe/Sites/speedsociety-2/wp-content/plugins/woocommerce/woocommerce.php(330): do_action('woocommerce_ini...')
#2 /Users/joe/Sites/speedsociety-2/wp-includes/plugin.php(525): WooCommerce->init('')
#3 /Users/joe/Sites/speedsociety-2/wp-setTings.php(392): do_action('init')
#4 /Users/joe/Sites/speedsociety-2/wp-config.php(67): require_once('/Users/joe/Site...')
#5 /Users/joe/Sites/speedsociety-2/wp-load.php(37): require_once('/Users/joe/Site...')
#6 /Users/joe/Sites/speedsociety-2/wp-admin/admin.php(31): require_once('/Users/joe/Site...')
#7 /Users/joe/Sites/speedsociety-2/wp-admin/edit.php(10): require_once('/Users/joe/Site...')
#8 {main}
  thrown in /Users/joe/Sites/speedsociety-2/wp-content/themes/ss/lib/contests/order.php on line 107

任何帮助,将不胜感激!

大佬总结

以上是大佬教程为你收集整理的在Woocommerce中以编程方式创建新订单全部内容,希望文章能够帮你解决在Woocommerce中以编程方式创建新订单所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。