我已经购买了Woocommerce Subscriptions插件,并且希望能够在结帐页面中获得订单ID。我想要这个,因为当订阅即将结束时,带有付款链接的电子邮件将发送给客户,并自动添加订单。当客户单击链接时,它将重定向到结帐页面,以便为订单付款。我需要使用诸如wc_get_order_item_meta()之类的函数从特定订单中检索元数据的订单ID。
我正在使用该wc_customer_bought_product()功能来检查当前用户是否购买了某种产品。
但是,现在我需要检查客户购买了多少该产品。
因此,例如,如果我在订单中购买了数量为 7 的产品,我需要一种方法来获取该产品的订单和该订单中的数量。
我怎样才能做到这一点?
如果有人有答案,将不胜感激。
在 WooCommerce 中,on-hold如果此订单中有延期交货的商品,如何将订单状态更改为其他状态?
我曾尝试使用挂钩在woocommerce_order_status_on-hold动作挂钩中的自定义函数,但没有成功。
任何人都可以帮助我解决这个问题吗?
谢谢。
我正在开发针对woocommerce的商家安全Unipay(MSU)的自定义API,并且需要在成功付款后更改数量.
这是过程:
一切运作良好,但无法找到钩子在哪里以及如何标记所有产品从购物卡支付和更改数量.
我怎样才能做到这一点?
谢谢
我有一个问题,这听起来很愚蠢,但我真的被卡住了。
我还需要向客户发送“新订单”电子邮件。我尝试向functions.php 文件添加函数,它发送电子邮件,但没有显示大部分变量。我将相同的代码插入到示例 php 文件中,在 wordpress 中添加为页面,并且效果非常好。我真的不知道发生了什么。
任何解决方案?也许有更简单的方法,比如在woocommerce的“新订单”电子邮件中添加recipent?我检查了 class-wc-email-new-order.php 文件,但我无法更改其中的任何内容,我不明白它是如何工作的。
屏幕:在页面上工作的代码 VS 在收到的电子邮件中可见的内容
function create_email_body($order_id){
global $woocommerce;
if ( !$order_id )
return;
$order = new WC_Order( $order_id );
$body = '';
$product_list = '';
$order_item = $order->get_items();
foreach( $order_item as $product ) {
$body .= $product['name'];
}
$order = new WC_Order( $order_id );
$body =' <div style = "width: 100%; clear: both; color: #000;">';
$body .=' <div style="width: 50%; float: left;">';
$body .=' <p> Numer zamówienia:<b> '. $order->get_order_number() .'</b> </p>'; …Run Code Online (Sandbox Code Playgroud) 当我将下面的代码直接粘贴到其中时thankyou.php,它的工作原理非常好.但是当我试图将其挂钩时woocommerce_thankyou,没有任何反应.
我刚开始使用PHP,
add_action('woocommerce_thankyou', 'test_1', 10, 1);
function test_1() {
$paymethod = $order->payment_method_title;
$orderstat = $order->get_status();
if (($orderstat == 'completed') && ($paymethod == 'PayPal')) {
echo "something";
} elseif (($orderstat == 'processing') && ($paymethod == 'PayPal')) {
echo "some other shit";
} elseif (($orderstat == 'pending') && ($paymethod == 'PayPal')) {
echo "some other shit";
}
}
Run Code Online (Sandbox Code Playgroud) 我们的 WooCommerce 网站有 2 种货币。主要货币是印度卢比,次要货币是美元(使用货币切换器)。我尝试以美元下订单,但 YITH 发票显示发票中的主要印度卢比符号。
我尝试更改为各种可用的货币切换器插件,但发票中的符号不会更改,它只是采用默认货币符号。
我什至尝试将 'get_woocommerce_currency_symbol()' 添加到货币参数数组到 YITH 函数。我需要帮助。使用的插件是 YITH Invoice ver: 1.3.11。
function yith_get_formatted_price ( $price, $args = array () ) {
extract ( apply_filters ( 'wc_price_args', wp_parse_args ( $args, array (
'ex_tax_label' => false,
'currency' => get_woocommerce_currency_symbol (),
'decimal_separator' => wc_get_price_decimal_separator (),
'thousand_separator' => wc_get_price_thousand_separator (),
'decimals' => wc_get_price_decimals (),
'price_format' => get_woocommerce_price_format (),
) ) ) );
$negative = $price < 0;
$price = apply_filters ( 'raw_woocommerce_price', floatval ( …Run Code Online (Sandbox Code Playgroud) 我有使用woocommerce_add_order_item_meta挂钩的自定义代码。但是woocommerce 3.4.0显示错误日志:“自版本3.0.0开始不赞成woocommerce_add_order_item_meta!请改用woocommerce_new_order_item。” 如何解决?非常感谢你。我的代码:
// add data design to order
function tshirt_order_meta_handler( $item_id, $values, $cart_item_key ) {
if( WC()->session->__isset( $cart_item_key.'_designer' ) ) {
wc_add_order_item_meta( $item_id, "custom_designer", WC()->session->get( $cart_item_key.'_designer') );
}
}
add_action( 'woocommerce_add_order_item_meta', 'tshirt_order_meta_handler', 1, 3 );
Run Code Online (Sandbox Code Playgroud) 我想创建一个页面,该页面显示来自数据库的查询以显示一些订单详细信息。
如何在页面上显示此查询?
在订单电子邮件模板中(例如email-order-items.php),WooCommerce使用此功能wc_display_item_meta在订单表中显示产品详细信息。wc-template-functions.php文件中存在功能代码(行号3011)。我正在复制下面的功能代码以供参考
function wc_display_item_meta( $item, $args = array() ) {
$strings = array();
$html = '';
$args = wp_parse_args( $args, array(
'before' => '<ul class="wc-item-meta"><li>',
'after' => '</li></ul>',
'separator' => '</li><li>',
'echo' => true,
'autop' => false,
) );
foreach ( $item->get_formatted_meta_data() as $meta_id => $meta ) {
$value = $args['autop'] ? wp_kses_post( $meta->display_value ) : wp_kses_post( make_clickable( trim( $meta->display_value ) ) );
$strings[] = '<strong class="wc-item-meta-label">' . wp_kses_post( $meta->display_key ) . ':</strong> ' . …Run Code Online (Sandbox Code Playgroud)