标签: orders

在WooCommerce后端的管理订单列表中添加列

我正在为我的一个电子商务Wordpress网站使用WooCommerce插件.我想在woocommerce管理区域的我的订单列表页面添加一些列.我无法找到添加它的位置.

任何人都可以建议我需要修改哪个模板页面以满足我的要求吗?

php wordpress backend orders woocommerce

13
推荐指数
1
解决办法
1万
查看次数

Woocommerce:替换已弃用的挂钩"woocommerce_add_order_item_meta"

需要为订单商品添加自定义元.谷歌搜索它,大多数文章说使用"woocommerce_add_order_item_meta"钩子.此挂钩在最新版本2.3.7中已弃用.有人,请告诉我使用哪个钩子.

http://docs.woothemes.com/wc-apidocs/function-woocommerce_add_order_item_meta.html

php wordpress orders woocommerce hook-woocommerce

12
推荐指数
3
解决办法
1万
查看次数

WooCommerce:将自定义Metabox添加到管理订单页面

我目前正在向我的WooCommerce产品页面成功添加一个字段,该字段显示了以下值:

  • 在购物车(前端),
  • 在结帐页面(前端),
  • 在订单页面(前端),
  • 并在管理员个人订单页面(后端).

问题:它没有在管理订单"自定义字段"Metabox中显示为自定义字段,其中包含值,但仅作为订单页面中的文本.

这是我的工作代码:

// Add the field to the product
add_action('woocommerce_before_add_to_cart_button', 'my_custom_checkout_field');

function my_custom_checkout_field() {
    echo '<div id="my_custom_checkout_field"><h3>'.__('My Field').'</h3>';
    echo  '<label>fill in this field</label> <input type="text" name="my_field_name">';
    echo '</div>';
}

// Store custom field
function save_my_custom_checkout_field( $cart_item_data, $product_id ) {
    if( isset( $_REQUEST['my_field_name'] ) ) {
        $cart_item_data[ 'my_field_name' ] = $_REQUEST['my_field_name'];
        /* below statement make sure every add to cart action as unique line item */
        $cart_item_data['unique_key'] = md5( microtime().rand() );
    }
    return $cart_item_data;
}
add_action( …
Run Code Online (Sandbox Code Playgroud)

php wordpress custom-fields orders woocommerce

12
推荐指数
1
解决办法
2万
查看次数

成功结账后获取订单数据

在WooCommerce中,我想在客户成功签出后向API发送请求.它基本上是一个网站,客户在那里销售在线课程(像udemy).

当客户退房时,我想发送API请求并为该特定课程注册用户.我尝试了几个WooCommerce钩子,但没有一个对我有效.

这是我正在使用的代码:

add_action('woocommerce_checkout_order_processed', 'enroll_student', 10, 1);

function enroll_student($order_id)
{
    echo $order_id;
    echo "Hooked";
}
Run Code Online (Sandbox Code Playgroud)

我在激活的插件中编写此代码,为了方便起见,我目前正在使用Cash on Delivery方法.

任何人都可以指出我出错的地方,因为当我结账时,我无法看到消息"挂钩"我正在打印也不是$order_id

我带我到成功页面,并没有显示我正在打印的这两件事.

php wordpress checkout orders woocommerce

12
推荐指数
3
解决办法
2万
查看次数

Woocommerce 用于订单状态更改的挂钩

在我的自定义插件中,我需要捕获每次订单状态从 变为 的情况,wc_on_hold因此wc_completed我尝试写下:

function so_status_completed( $order_id, $old_status, $new_status ) {       
    
    // if user is active , then get order amount and do all other personal calculations
    
    global $wpdb;
    $order = wc_get_order( $order_id );
    //$payment_method = $order->get_payment_method(); //returns payment method bacs,cheque,cod etc
    $user_id = $order->get_user_id();
    $total = $order->get_total();
    $order_data = $order->get_data(); 
    //$order_total = $order->get_formatted_order_total();
    $order_total = $order->get_total();
    
    echo '<script>console.log("Debug Objects: Check order_total ' . $order_total. '");</script>';

}
add_action('woocommerce_order_payment_status_changed','so_status_completed',10,1);
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将订单测试从暂停更改为完成时,我无法在 Chrome 控制台上回显给我订单价格......也许使用 add_action 不是将侦听器置于该事件的正确方法?

另外,由于我就在这里,我正在使用 $order-get_total() ,我在网上搜索了它的功能,但没有找到深入的文档,所以我想问你该方法是否是免费检索订单金额的正确方法应用?

谢谢!干杯!!!

wordpress orders woocommerce hook-woocommerce woocommerce-theming

11
推荐指数
1
解决办法
1万
查看次数

在Magento中获取状态='完成'的订单ID

我正在努力获取Magento中status ='complete'的订单的订单ID和其他详细信息.我确信在magento中有一种方法可以检索状态为Complete的所有订单.由于我是magento的新人,我发现很难解决这个问题.

我希望向客户发送订单状态为完成电子邮件,并在发送电子邮件后标记.但这就是它的后半部分.任何人都可以告诉我如何在magento中获得状态为Complete的所有订单ID?

任何帮助表示赞赏.提前致谢.

php magento orders

10
推荐指数
1
解决办法
3万
查看次数

如何在WooCommerce中付款后查看订单状态

我需要在收到付款后自动更改已完成的订单状态,但前提是订单状态为"正在处理".我找到了片段,在每种情况下都会使订单状态完成,但是在成功付款更改后我的付款插件会返回数据并更改"处理"的订单状态.我想在成功后将其更改为"已完成",如果状态不是"处理",则不要更改它.我遇到的主要问题是我不知道如何获得收到的状态订单.

这是我的代码:

add_filter( 'woocommerce_thankyou', 'update_order_status', 10, 2 );

function update_order_status( $order_id ) {
   $order = new WC_Order( $order_id );
   $order_status = $order->get_status();    
   if ('processing' == $order_status) {    
       $order->update_status( 'completed' );    
    }    
 //return $order_status;
}
Run Code Online (Sandbox Code Playgroud)

我已经弄清楚了.这是工作代码:

add_filter( 'woocommerce_thankyou', 'update_order_status', 10, 1 );

function update_order_status( $order_id ) {
  if ( !$order_id ){
    return;
  }
  $order = new WC_Order( $order_id );
  if ( 'processing' == $order->status) {
    $order->update_status( 'completed' );
  }
  return;
}
Run Code Online (Sandbox Code Playgroud)

php wordpress payment-gateway orders woocommerce

9
推荐指数
2
解决办法
2万
查看次数

BS Modal中的WooCommerce客户订单详细信息

在运行WooCommerce的WordPress网站中,用户可以登录他的(默认)个人区域并显示以下信息:

  • 订购历史
  • 下载
  • 地址
  • 编辑信息
  • 登出

orders选项卡中,默认情况下会显示一个表格,显示所有订单的列表,并带有一个View按钮,该按钮可重定向到该订单的完整详细信息页面.

我想要做的是在模态窗口中显示该表视图.

我在显示加载了目标url的模态时没有任何问题.真正的问题是,目标网址是完整页面的网址,它显示在一个<iframe>,而不是我想要的.

我认为有一些短代码允许加载该表,或者可能是一些woocommerce功能load_order_content_by_id($id)

任何人都能指出我正确的方向吗?

谢谢

===解决===

感谢Raunak Gupta为我指出了正确的功能.我重写了orders.php模板,添加了Modal窗口html并进行了编辑$actions:

'view'   => array(
    'url'  => 'javascript:;',
    'data' => [
        'order-number' => $order->get_order_number()
    ],
    'name' => __( 'View', 'woocommerce' )
),
Run Code Online (Sandbox Code Playgroud)

并在同一档案上:

foreach ( $actions as $key => $action ) {
    echo '<a href="' . esc_url( $action['url'] ) . '" class="button ' . sanitize_html_class( $key ) . '"';
    if(isset($action['data']) && is_array($action['data'])){
        foreach($action['data'] AS $data_attr=>$data_value){
            echo 'data-' …
Run Code Online (Sandbox Code Playgroud)

php wordpress modal-dialog orders woocommerce

9
推荐指数
2
解决办法
1215
查看次数

检测当前用户是否具有有效订阅

我正在使用WooCommerce在WordPress中开发一个网站.我正在使用WC付费列表WooCommerce订阅插件来处理我的工作.

问题是当具有"订阅者"角色的用户具有活动订阅登录并且每次他/她必须选择包时尝试发布内容,即使他具有活动订阅.

是否有人知道如何检测用户是否有活动订阅,如果它返回true则跳过选择包的步骤?

谢谢.

php wordpress orders woocommerce woocommerce-subscriptions

9
推荐指数
2
解决办法
5704
查看次数

获取woocommerce 3中订单商品的元数据

如何获得产品woocommerce的元数据?我有我的产品现场定制,我需要获取这些数据.

{"ID":151,
 "ORDER_ID":251,
 "NAME":"car",
 "PRODUCT_ID":87,
 "VARIATION_ID":0,
 "QUANTITY":1,
 "TAX_CLASS":"",
 "SUBTOTAL":"3",
 "SUBTOTAL_TAX":"0",
 "TOTAL":"3",
 "TOTAL_TAX":"0",
 "TAXES":{"TOTAL":[],
          "SUBTOTAL":[]},
 "META_DATA":[{"ID":1433,
               "KEY":"my_car",
               "VALUE":"red"}]}
Run Code Online (Sandbox Code Playgroud)

但总是结果是一样的,我无法进入现场meta_data.该领域IDname我有权访问.

我用get_data()get_item(),但是当我尝试访问get_data()到外地 meta_data它给我这个错误:

 UNCAUGHT ERROR: CANNOT USE OBJECT OF TYPE WC_DATETIME AS ARRAY IN  
Run Code Online (Sandbox Code Playgroud)

并且get_item(),meta_data由于受到保护,该值为null.

我怎样才能获得这些价值?

php wordpress metadata orders woocommerce

9
推荐指数
1
解决办法
1万
查看次数