如果选择的付款方式是COD,我想做一些更改.在我使用的现有WC_Order上
($order->payment_method_title == 'Cash On Delivery' ? ... : ... );
Run Code Online (Sandbox Code Playgroud)
检索标题.但我想检查id(cod),因为标题字符串被翻译成不同的语言,这不是一个很好的解决方案.
有没有办法在woocommerce中的WC_Order上检索id?
这是问题所在.我的woocommerce网站有3种不同的付款方式 -
如果我的买家以"支票付款"结帐,我想向他发送一封自动发送的电子邮件,其中概述了支票付款的步骤.如果他与"西联汇款"签出,我想通过电子邮件将他的西联汇款信息发送给他.应发送另一封自动电子邮件以进行货到付款.
通常在Woocommerce中,您有一封电子邮件发送给客户完成所有已完成的订单,在我的情况下,根据付款选项,我需要3封不同的电子邮件.
所以我开始使用本教程制作自定义电子邮件 - https://www.skyverge.com/blog/how-to-add-a-custom-woocommerce-email/
上面的教程用于制作自定义电子邮件以加快运输.这是教程中使用的代码行 -
// bail if shipping method is not expedited
if ( ! in_array( $this->object->get_shipping_method(), array( 'Three Day Shipping', 'Next Day Shipping' ) ) )
return;
Run Code Online (Sandbox Code Playgroud)
如果我想检查付款方式是什么,那么代码行是什么?我想检查付款方式是否为"支票付款",以便我可以向他发送自定义电子邮件.
如果您有任何想法,请告诉我.
我们已删除客户电子邮件中的付款信息,但无法删除标题。我们该怎么做?我们使用 Woocommerce 电子邮件模板来发送订单确认电子邮件。
我们不断寻找并尝试改变
我们在电子邮件订单详细信息中尝试了这一点,它根本不起作用。
<tfoot>
<?php
if ( $totals = $order->get_order_item_totals() ) {
$i = 0;
foreach ( $totals as $total ) {
$i++;
if ( $total['label'] != 'Payment Method:' ){
?><tr>
<th scope="row" colspan="2" style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['label']; ?></th>
<td style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['value']; ?></td>
</tr><?php
} …
Run Code Online (Sandbox Code Playgroud) php wordpress email-notifications woocommerce payment-method
我有magento EE 1.14.2设置我的客户现在不需要任何付款方式.如何从结帐流程中跳过付款方式.我只是想订购没有选择付款方式.
任何建议欢迎提前.
我正在使用PHP Paypal SDK:https : //github.com/paypal/PayPal-PHP-SDK
通过PHP SDK引用的PayPal REST API返回“传入的JSON请求未映射到API请求”
根据已经可用的交易ID,需要获取付款ID
我试过下面的代码
require __DIR__ . '/bootstrap.php';
use PayPal\Api\Amount;
use PayPal\Api\Details;
use PayPal\Api\Item;
use PayPal\Api\ItemList;
use PayPal\Api\CreditCard;
use PayPal\Api\Payer;
use PayPal\Api\Payment;
use PayPal\Api\FundingInstrument;
use PayPal\Api\Transaction;
// Extra Code
use PayPal\Api\PaymentDetail;
$payer = new Payer();
$payer->setPaymentMethod('paypal');
$transaction = new PaymentDetail(
'{
"method" : "CASH",
"date" : "2014-07-06 03:30:00 PST",
"note" : "Cash received."
}'
);
$transaction->setTransactionId("3NT32794KF4824703");
$payment = new Payment();
$payment->setIntent("sale")
->setPayer($payer)
->setTransactions(array($transaction));
// For Sample Purposes Only. …
Run Code Online (Sandbox Code Playgroud) 我有这种情况 - 我对其中一个woocommerce电子邮件模板进行了更改,但我确定 - 这些更改将在下一次woocommerce更新后丢失.
据我所知,我应该使用主题函数来绕过这个问题.
这是更改前的代码:
echo '<ul class="wc-bacs-bank-details order_details bacs_details">' . PHP_EOL;
// BACS account fields shown on the thanks page and in emails
$account_fields = apply_filters( 'woocommerce_bacs_account_fields', array(
'account_number'=> array(
'label' => __( 'Account Number', 'woocommerce' ),
'value' => $bacs_account->account_number
),
'sort_code' => array(
'label' => $sortcode,
'value' => $bacs_account->sort_code
),
'iban' => array(
'label' => __( 'IBAN', 'woocommerce' ),
'value' => $bacs_account->iban
),
'bic' => array(
'label' => __( 'BIC', 'woocommerce' ),
'value' => $bacs_account->bic
) …
Run Code Online (Sandbox Code Playgroud) 背景:
问题:如何发现与我的现时相关的payment_method?
编辑添加:在javascript + PHP页面的底部,有一个自相矛盾的引用,它引用了一个未公开的[paymentMethodNonce]参数,该参数也使用了未公开的[options] [verifyCard]参数。我想我可以对与用户关联的每个payment_method令牌运行[paymentMethodNonce] san [options],并检查错误...大声笑。
在WooCommerce中,我需要为特定支付网关应用自定义处理费.我从这里得到这段代码:如何向WooCommerce Checkout添加处理费.
这是我的代码:
add_action( 'woocommerce_cart_calculate_fees','endo_handling_fee' );
function endo_handling_fee() {
global $woocommerce;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$fee = 5.00;
$woocommerce->cart->add_fee( 'Handling', $fee, true, 'standard' );
}
Run Code Online (Sandbox Code Playgroud)
此功能为所有交易添加费用
是否可以调整此功能并使其仅适用于货到付款?
另一个问题是我希望这笔费用适用于购物车.可能吗?
我也欢迎任何替代方法.我知道类似的"支付网关费用"woo插件,但我负担不起.
我正在研究与 React Node.js 的条带集成
在无需试用的情况下创建订阅时,我没有遇到任何问题,并且所有用例都非常简单。
但是,我正在尝试创建免费试用版而不收集信用卡详细信息,稍后当试用期结束时,我想收集信用卡详细信息
服务器端:创建无付款方式的试用订阅:
const subscription = await stripe.subscriptions.create({
customer: customer.id,
items: [{ price: priceId }],
trial_end: expiredAt.unix(),
expand: ['latest_invoice.payment_intent'],
});
Run Code Online (Sandbox Code Playgroud)
客户端:稍后当试用期满时,我想收集信用卡详细信息( paymentMethod ),检查是否由于故障或 3ds 需要用户操作,并通过更新客户的默认 payment_method 来更新订阅:
const updateCustomerDefaultPaymentMethod = await stripe.customers.update(
customerId,
{
invoice_settings: {
default_payment_method: req.body.paymentMethodId,
},
}
);
Run Code Online (Sandbox Code Playgroud)
如何更新订阅以执行 paymentIntent 或向用户收费,并向客户端返回状态为“in_complete”的相同订阅对象,与创建没有试用期的订阅时相同?目前,在运行我的代码时,我不断收到 status='active',因为第一张发票的状态='paid',价格为'0$'。
在WooCommerce中,任何与BACS(直接银行转帐)相关的订单都设置为"on-hold"
.
如何自动将其更改为处理?
我不想在里面工作 functions.php
我有以下代码,但这不起作用:
add_filter( 'woocommerce_payment_complete_order_status', 'rfvc_update_order_status', 10, 2 );
function rfvc_update_order_status( $order_status, $order_id ) {
$order = new WC_Order( $order_id );
if ( 'on-hold' == $order_status && 'on-hold' == $order->status ) {
return 'processing';
}
return $order_status;
}
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很棒!
payment-method ×10
php ×6
woocommerce ×6
wordpress ×6
checkout ×2
braintree ×1
enterprise ×1
magento ×1
node.js ×1
orders ×1
payment ×1
paypal ×1
reactjs ×1
sdk ×1