我想以编程方式发送一封新订单电子邮件,因此它看起来与标准 Woo Commerce 电子邮件模板相同。
\n\n我正在使用 WC_Email_New_Order 类,因此我可以在根据订单对象构造电子邮件之前对其进行调整。
\n\n在一些测试代码中,我现在将其触发 wp_head 挂钩,仅用于测试目的。
\n\nadd_action('wp_head', function() {\n include('wp-content/plugins/woocommerce/includes/emails/class-wc-email.php');\n include('wp-content/plugins/woocommerce/includes/emails/class-wc-email-new-order.php');\n\n $adminEmail = new WC_Email_New_Order();\n\n $id = 1564; // order\n $order = new WC_Order($id);\n\n $adminEmail->trigger( null, $order );\n\n}); \nRun Code Online (Sandbox Code Playgroud)\n\n这部分有效...我收到了主题行正确的电子邮件,但是电子邮件正文只是说...
\n\nYou\xe2\x80\x99ve received the following order from Dave Peterson:\nRun Code Online (Sandbox Code Playgroud)\n\n如何触发电子邮件模板的其余部分?
\n当在此 WooCommerce 商店中订购特定产品时,两个元值将添加到订单中。
存储元值的两个字段位于wp_woocommerce_order_itemmeta
元键是:
quantity
assemblycost
Run Code Online (Sandbox Code Playgroud)
我想在下新订单时以编程方式创建一个新的自定义字段,并将该新字段的值设置为等于quanity * assemblycost已订购产品的元键组装成本。
经过一些研究,我发现这woocommerce_checkout_update_order_meta是一个在订单保存到数据库并且元数据已更新后执行的钩子。所以这似乎是我应该使用的钩子。
function add_item_meta( $order_id ) {
//global $woocommerce;
update_post_meta( $order_id, '_has_event', 'yes' );
}
Run Code Online (Sandbox Code Playgroud)
我尝试在functions.php中添加以下代码:
add_action('woocommerce_checkout_update_order_meta',function( $order_id, $posted ) {
$assemblycost = wc_get_order_item_meta($order_id, 'assemblycost');
$quantity = wc_get_order_item_meta($order_id, 'quantity');
$calculatedValue = $quantity * $assemblycost;
wc_update_order_item_meta( $order_id, 'calculated_field', $calculatedValue );
} , 10, 2);
Run Code Online (Sandbox Code Playgroud)
这确实创建了新的元字段,但它将该值设置为 0。
如何更改上面的代码,以便计算字段的值是 的乘积quantity * assemblycost?
我确信这个问题已经被问过很多次了。我什至得到了很少的答案,但我真的不知道如何在 Wordpress + WooCommerce 中编辑任何“操作”或“过滤器”挂钩。
以结账页面为例,底部通常是购物车的摘要,该信息是由以下代码生成的:
<?php do_action( 'woocommerce_thankyou', $order->get_id() ); ?>
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的方式在其他文件中搜索“woocommerce_thankyou”,但我找不到任何内容。那么,输出代码是如何生成的呢?必须有一个文件来调用它。
我正在尝试从订单中获取插件中自定义变量的税率。当然,我可以通过 请求大量数据$order-> get_ ...,但我找不到获取税率的方法(例如“21”-> 21%)。
有人有想法让这变得简单吗?
在 WooCommerce 中,我想添加一个新的自定义字段来订单详细信息。现在我可以使用下面的代码创建一个新的自定义字段“referenceNumber”并在其中添加“ordercreated”值:
update_post_meta($order_id, 'referenceNumber', 'ordercreated']);
Run Code Online (Sandbox Code Playgroud)
我想要的是在下订单后通过结帐来进行。
但它不起作用,它不会向订单详细信息页面添加新的自定义字段,也不会添加值“ordercreated”,正如您在此屏幕截图中看到的:
那么问题是在 WooCommerce 下订单时如何添加自定义字段?
我有一家商店,里面有很多不同的产品。所有订单都是专门为客户定制的。这意味着当我们在仓库收到产品时,我们需要找到特定产品的订单。现在我们只需手动检查大多数订单即可。
我们想要做的事情是通过自定义属性术语搜索订单,这将为我们节省宝贵的时间。例如:我们对定制订单使用属性“尺寸”。我们有24个“尺寸”术语(例如“12cm”,:16cm”等)。我们想根据尺寸术语查找订单。例如:查找所有尺寸为“48cm”的订单。
基于按 id 或 sku 在后端订单列表中扩展产品项目的搜索,这是我的代码尝试:
add_filter( 'woocommerce_shop_order_search_fields', function ($search_fields ) {
$orders = get_posts( array( 'post_type' => 'shop_order' ) );
foreach ($orders as $order_post) {
$order_id = $order_post->ID;
$order = new WC_Order($order_id);
$items = $order->get_items();
foreach( $order->get_items() as $item_id => $item_values ) {
if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
$product_id = $item_values['product_id'];
} else {
$product_id = $item_values->get_product_id();
}
$attribute = $item_values->get_data();
// attribute value
$value = $attribute['value'];
// attribute slug
$slug = …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 WooCommerce 仪表板上向客户显示最后 3 个订单。但get_template()根本不起作用并且什么也不显示。
我还尝试将orders.php表单放入dashboard.php模板文件中,但这里没有显示任何订单,而我已经有一些活动订单。我很困惑,不知道这个问题。
这是我的仪表板代码:
<?php get_header();?>
<?php
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce\Templates
* @version 4.4.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
$allowed_html = array(
'a' => array(
'href' => array(),
),
);
?>
<p>
<!-- <?php
printf(
/* translators: 1: user display name 2: logout url */
wp_kses( __( 'Hello %1$s (not %1$s? <a href="%2$s">Log out</a>)', 'woocommerce' ), $allowed_html ), …Run Code Online (Sandbox Code Playgroud) 成功付款后,我没有收到管理员订单确认电子邮件.我从sisow收到付款通知,但不是从网站收到.客户收到确认电子邮件但不是管理员.我是prestashop的新手,没有找到任何解决方案.
请建议我让它工作.
如何通过产品ID获取包含订单ID的阵列?
我的意思是接收所有特定产品的订单.
我知道如何通过MySQL做到这一点,但有没有办法通过WP_Query函数来做到这一点?
orders ×10
php ×9
woocommerce ×9
wordpress ×9
account ×1
admin ×1
email ×1
prestashop ×1
product ×1
tax ×1