首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择要显示在WooCommerce页面中的BACS

选择要显示在WooCommerce页面中的BACS
EN

Stack Overflow用户
提问于 2019-03-07 16:34:34
回答 2查看 650关注 0票数 1

我有一个WooCommerce商店,其中一个产品可以由一个以上的艺术家个性化。每个艺术家都有他们自己的银行帐户来接受他们的付款;所以我需要出现在“谢谢”页面中的银行帐户,以及相应的电子邮件,是属于被选中的艺术家的帐户。为了识别每个银行账户和艺术家,我做了下一个:

  1. 我为每个产品的变体(艺术家)分配了一个3个字符标识符。
  2. 我还为支付网关中的每个银行帐户分配了相同的3个字符标识符,使用排序代码字段。

现在,我需要找到哪个银行帐户的排序代码等于所选的变体段格account_details[x]['sort_code'] = (the variation slug)

有人能给我指明正确的方向吗?我需要一个循环来禁用account_details中的所有行,除了匹配变体段塞的行。

我找到了选择银行账户的方法,方法是将银行账户与字符串进行比较。为此,我在文件类wc-gateway-bacs.php的第255行中添加了条件if ( $bacs_account->sort_code != 'ztc' ) { continue; }

代码语言:javascript
复制
    foreach ( $bacs_accounts as $bacs_account ) {
        $bacs_account = (object) $bacs_account; if ( $bacs_account->sort_code != 'ztc' ) { continue; }
        if ( $bacs_account->account_name ) {
            $account_html .= '<h3 class="wc-bacs-bank-details-account-name">' . wp_kses_post( wp_unslash( $bacs_account->account_name ) ) . ':</h3>' . PHP_EOL;

但是,我找不到方法让变体段塞来比较它与$bacs_account->sort_code (而不是字符串)。另外,我认为最好是由functions.php文件来修改,而不是处理类wc bacs.php文件。

有人能帮我做这些事吗?

EN

Stack Overflow用户

发布于 2019-03-07 17:51:25

我在类似的情况下工作,但是我在结帐页面上启用了网关。每个顺序后,网关都会以循环的方式发生变化。假设一次使用网关1,第二次使用网关2,第三次使用网关3再次使用网关1,我使用CSS一次只隐藏/显示一个网关。

代码语言:javascript
复制
function filter_gateways($gateways){
  global $woocommerce;
  //$WC_Payment_Gateway = wc_get_payment_gateway_by_order( $order );
  $latest_order_id = get_last_order_id(); //Get latest used gateway.
  $order_method = get_post_meta( $latest_order_id, '_payment_method', true );
//Disable /hide gateways based on last order.
    if ($order_method == 'nmi_gateway_woocommerce_credit_card_cloneC') {?>
    <style type="text/css">
    li.payment_method_nmi_gateway_woocommerce_credit_card_cloneC{display: none !important;}
    li.payment_method_nmi_gateway_woocommerce_credit_card_cloneF{display: none !important;}
    li.payment_method_nmi_gateway_woocommerce_credit_card_cloneK{display: none !important;}
    </style>
    <?php

    } elseif ($order_method == 'nmi_gateway_woocommerce_credit_card_cloneE') {?>
    <style type="text/css">
    li.payment_method_nmi_gateway_woocommerce_credit_card_cloneC{display: none !important;}
    li.payment_method_nmi_gateway_woocommerce_credit_card_cloneE{display: none !important;}
    li.payment_method_nmi_gateway_woocommerce_credit_card_cloneK{display: none !important;}
    </style>

    <?php


    } elseif ($order_method == 'nmi_gateway_woocommerce_credit_card_cloneF') {?>
    <style type="text/css">
    li.payment_method_nmi_gateway_woocommerce_credit_card_cloneC{display: none !important;}
    li.payment_method_nmi_gateway_woocommerce_credit_card_cloneE{display: none !important;}
    li.payment_method_nmi_gateway_woocommerce_credit_card_cloneF{display: none !important;}
    </style>



    return $gateways;
}

add_filter('woocommerce_available_payment_gateways','filter_gateways');

因此,在您的情况下,获得弹格url,并在此基础上,应该有一些样式惯例遵循的BACS显示从使用,您可以禁用其他网关。

要得到子弹,以防你没有:1.首先从订单id中获取产品id。2.然后可以使用product (Woocommerce: How do I get the product slug from the id? )获取段塞。

希望这能有所帮助。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55048703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档