我正在尝试在WooCommerce订单页面中添加自定义订单操作.
我想在WooCommerce中的批量订单操作下拉列表中添加两个新选项
在这方面的任何帮助都非常感谢.
我想将WooCommerce订单状态从"已完成"重命名为"已收到订单".我可以编辑下面wc-order-functions.php中的脚本,但我不想修改任何核心文件或使用插件.
是否可以使用子主题functions.php文件中的脚本覆盖woocoomerce函数?
function wc_get_order_statuses() {
$order_statuses = array(
'wc-pending' => _x( 'Pending Payment', 'Order status', 'woocommerce' ),
'wc-processing' => _x( 'Processing', 'Order status', 'woocommerce' ),
'wc-on-hold' => _x( 'On Hold', 'Order status', 'woocommerce' ),
'wc-completed' => _x( 'Completed', 'Order status', 'woocommerce' ),
'wc-cancelled' => _x( 'Cancelled', 'Order status', 'woocommerce' ),
'wc-refunded' => _x( 'Refunded', 'Order status', 'woocommerce' ),
'wc-failed' => _x( 'Failed', 'Order status', 'woocommerce' ),
);
return apply_filters( 'wc_order_statuses', $order_statuses );
}
Run Code Online (Sandbox Code Playgroud) 我访问了官方 WooCommerce Rest API 文档“创建订单”部分。我正在尝试通过 API 创建订单,但是当我想使用应用优惠券创建订单时,我不知道如何制作。
当我通过 REST API 创建订单时,如何传递优惠券代码作为折扣?
在相关的官方文档中我没有找到任何请求参数来传递优惠券代码或折扣。
请建议在 WooCommerce 中通过 REST API 创建订单时如何传递优惠券代码。
我希望在客户方的订单历史记录中显示最后的订单备注,目前只能通过 Woocommerce 中的管理员查看。
这样他们就可以在订单设置完成后查看我们添加的跟踪号码。
https://example.com/my-account/view-order/135/
Run Code Online (Sandbox Code Playgroud)
我们首先通过 Woocommerce API 将订单设置为“完成”,然后添加带有跟踪链接的订单备注,从而添加客户备注。所以跟踪参考将始终是最后一项。
如何在客户订单历史记录中显示最后的订单备注?似乎不存在用于在客户端显示订单备注的插件。
理想结果:
我正在尝试向我的感谢页面添加一些 google 跟踪脚本。我已经编写了这段代码,它成功地将跟踪器注入到带有动态值的感谢中,但我需要将其添加到标签中。
function mv_google_conversion( $order_id ) {
$order = new WC_Order( $order_id );
$currency = $order->get_currency();
$total = $order->get_total();
?>
<script>
gtag('event', 'conversion', {
'send_to': 'AW-746876528/x5W1CLfA8JoBEPDckeQC',
'value': <?php echo $total; ?>,
'currency': '<?php echo $currency; ?>',
'transaction_id': '<?php echo $order_id; ?>'
});
</script>
<?php
}
add_action( 'woocommerce_thankyou', 'mv_google_conversion' );
Run Code Online (Sandbox Code Playgroud)
我将如何使用此代码以及 header.php 中的动态值,或者是否有针对 woocommerce 谢谢页面上的标签的钩子。
我正在使用 WooCommerce 在 Wordpress 上开发电子商务网站。我想在订单确认页面(即付款后)检索并显示客户在结账时选择的“运输方式”(即交付或收集等)。
我正在尝试使用get_post_meta($post_id, $key, $single)函数来做到这一点。我无法这样做,因为我不知道 $key 值。
我尝试了以下代码(在 php 标签内):
echo get_post_meta( $order_id, 'shipping_method', true );
Run Code Online (Sandbox Code Playgroud)
但它返回一个空白值(页面上没有显示)。我假设我使用的是不正确的$key.
我愿意接受使用其他(更简单的)方法来实现这一目标的建议。
使用添加在 WooCommerce 4+ 答案代码中发送电子邮件通知的新订单状态,我已经能够收到一个自定义状态的电子邮件通知,但无法了解如何发送电子邮件通知两种自定义状态。
请参阅下面的示例代码和我尝试过的多个自定义状态电子邮件通知的代码。我还包含了完整的代码,它显示了创建多个状态的整个过程。
希望对这个快速修复有所帮助!
另外,至于电子邮件正文 - 是否有可能通过此代码更改处理订单内容,而无需创建新的电子邮件模板?
正在运行 - 单个自定义状态电子邮件通知“已发货”
add_filter( 'woocommerce_email_actions', 'filter_woocommerce_email_actions' );
function filter_woocommerce_email_actions( $actions ){
$actions[] = 'woocommerce_order_status_wc-shipped';
return $actions;
}
// Send Customer Processing Order email notification when order status get changed from "tree" to "processing"
add_action('woocommerce_order_status_changed', 'shipped_status_custom_notification', 10, 4);
function shipped_status_custom_notification( $order_id, $from_status, $to_status, $order ) {
if( 'shipped' === $to_status ) {
// The email notification type
$email_key = 'WC_Email_Customer_Processing_Order';
// Get specific WC_emails object
$email_obj = WC()->mailer()->get_emails()[$email_key];
// Sending …Run Code Online (Sandbox Code Playgroud) 我使用此代码进行新订单并设置完整状态。
之后,woocommerce 会自动向买家发送电子邮件。
但我不想发送这封电子邮件。
我怎么能?
$order = wc_create_order();
$order->set_customer_id($userId);
foreach($_POST['basket'] as $prod){
$order->add_product(get_product($prod['id']), $prod['count']);
}
$order->set_address($address, 'billing');
$order->calculate_totals();
$order->update_status("completed", 'TEST', TRUE);
Run Code Online (Sandbox Code Playgroud)
注意:我不想禁用从 wp-admin 发送电子邮件
我们有很多回头客,因此我尝试在 WooCommerce 管理订单列表上显示用户生命周期价值(LTV - 所有过去订单的总和),以快速识别最佳用户。
但我什至不知道这是否可能。我有一个自定义专栏来查看是否有回头客,但不知道从哪里开始获得生命周期价值。
我用于标记退货买家的代码:
add_filter( 'manage_shop_order_posts_columns',
'shalior_wc_set_custom_edit_post_columns',99,1 );
function shalior_wc_set_custom_edit_post_columns($columns) {
$columns['is-returning'] = __( 'Is returning?', 'your_text_domain' );
return $columns;
}
add_action( 'manage_shop_order_posts_custom_column' , 'shalior_wc_is_returning', 99, 2 );
function shalior_wc_is_returning( $column, $post_id ) {
switch ( $column ) {
case 'is-returning':
$order = new WC_Order( $post_id );
$user_id = $order->get_user_id();
$orders_count = wc_get_customer_order_count( $user_id );
echo $orders_count > 1 ? '<span style="color: #040404; background: #9ae288;
padding: 3px; padding-left: 12px; padding-right: 12px; border-radius: 3px;">Yes</span>' : "No" ;
break; …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用元键“order_referrer_id”获取所有商店订单,该值将是用户 ID,例如“1060”。
这是我到目前为止所尝试过的:
$args = array(
'limit' => -1,
'status' => 'completed',
'meta_query' => array(
array(
'key' => 'order_referrer_id',
'value' => 1060,
'compare' => '='
),
),
'return' => 'ids',
);
$orders = wc_get_orders( $args );
Run Code Online (Sandbox Code Playgroud)
由于某种原因,查询忽略元查询并返回所有订单。
筛选店铺订单的正确方法是什么?