Php 在WooCommerce签出中的付款网关之前添加自定义单选按钮必填字段

Php 在WooCommerce签出中的付款网关之前添加自定义单选按钮必填字段,php,wordpress,woocommerce,radio-button,payment-gateway,Php,Wordpress,Woocommerce,Radio Button,Payment Gateway,是否可以在签出页面的付款网关前显示以下单选按钮: “在物业付款” 您的卡将不收费,我们只需要您的卡详细信息 保证您的预订 “立即付款” 我们会处理付款事宜。如果您在2020年12月31日之前改变主意,您将获得全额退款 客户必须选择这两个按钮中的一个,因此需要这两个按钮中的一个 然后将其显示在管理员和客户的订单邮件中 如果你有解决方案,它将帮助我很多 我不知道这是不是工作 在HTML中使用具有两个半径的表单,并将它们分组到相同的名称属性中(对于必需的)。这使得客户不得不选择其中一种。然后发

是否可以在签出页面的付款网关前显示以下单选按钮:

  • “在物业付款”
    您的卡将不收费,我们只需要您的卡详细信息 保证您的预订

  • “立即付款”
    我们会处理付款事宜。如果您在2020年12月31日之前改变主意,您将获得全额退款

客户必须选择这两个按钮中的一个,因此需要这两个按钮中的一个

然后将其显示在管理员和客户的订单邮件中


如果你有解决方案,它将帮助我很多

我不知道这是不是工作

在HTML中使用具有两个半径的表单,并将它们分组到相同的名称属性中(对于必需的)。这使得客户不得不选择其中一种。然后发布value属性中的值,以便您可以将该值用于所需的下一个进程


“在酒店付款”
“您的卡将不收费,我们只需要您的卡详细信息来保证您的预订。”
“立即付款”
我们将处理付款事宜。如果您在2020年12月31日之前改变主意,您将获得全额退款。


您可以在付款前使用
woocommerce\u review\u order\u
操作挂钩在woocommerce结账页面的付款前部分显示单选按钮,如下所示:

// Display a Custom radio buttons input fields before checkout available payment gateways section
add_action( 'woocommerce_review_order_before_payment','checkout_customer_type_radio_buttons' );
function checkout_customer_type_radio_buttons() {

    echo '<div id="custom-radio-buttons">';
    echo '<h3>' . __("Your section sub-title", "woocommerce") . '</h3>';

    // Here below set your field Id (or field key)
    $field_id = '_custom_key';

    woocommerce_form_field( $field_id, array(
        'type'     => 'radio',
        'class'    => array( 'some-class' ),
        'options'  => array(
            'First Option'    => __('First Option', 'woocommerce'),
            'Second Option'   => __('Second Option', 'woocommerce'),
        ),
        'default'  => 'First Option',
        'required' => true,
    ), WC()->checkout->get_value( $field_id ) );

    echo '</div>';
}
//在签出可用支付网关部分之前显示自定义单选按钮输入字段
添加操作('woocommerce\u review\u order\u before\u payment'、'checkout\u customer\u type\u单选按钮');
功能签出\客户\类型\单选按钮(){
回声';
回显“”。u uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;
//在下面设置您的字段Id(或字段键)
$field_id=''u custom_key';
woocommerce\u表单\u字段($field\u id,数组)(
'类型'=>'无线电',
'class'=>数组('some class'),
“选项”=>数组(
“第一个选项”=>“‘第一个选项’、‘woocommerce’”,
“第二个选项”=>“‘第二个选项’、‘woocommerce’”,
),
'默认'=>'第一选项',
“必需”=>true,
),WC()->checkout->get_value($field_id));
回声';
}
代码进入活动子主题(或活动主题)的functions.php文件。测试和工作

添加-为了更好地显示您可以使用以下选项:

// Display a Custom radio buttons input fields before checkout available payment gateways section
add_action( 'woocommerce_review_order_before_payment','checkout_customer_type_radio_buttons' );
function checkout_customer_type_radio_buttons() {
    ## YOUR RADIO BUTTONS SETTINGS BELOW:
    $field_id = '_custom_key'; // HERE below set your field Id (or field key)
    $options = array( // HERE below set your radio button options in the array:
        __('First Option', 'woocommerce'),
        __('Second Option', 'woocommerce'),
        __('Third Option', 'woocommerce'),
    );
    $default = reset($options); // HERE set default checked option (The first one is set in here)

    echo '<div id="custom-radio-buttons">';
    echo '<h3>' . __("Your section sub-title (optional)", "woocommerce") . '</h3>';
    echo '<p class="form-row some-class validate-required" id="'.$field_id.'_field">
    <span class="woocommerce-input-wrapper">';

    $value = WC()->checkout->get_value( $field_id );
    $value = empty($value) ? $default : $value;

    // Loop through defined options array
    foreach( $options as $option ) {
        $checked = $option === $value ? ' checked="checked"' : '';

        echo '<label for="'.$field_id.'_'.$option.'"><input type="radio" class="input-radio " name="'.$field_id.'" id="'.$field_id.'_'.$option.'" value="'.$option.'"'.$checked.'> ' . $option . '</label>';
    }

    echo '</span></p></div>';
}
//在签出可用支付网关部分之前显示自定义单选按钮输入字段
添加操作('woocommerce\u review\u order\u before\u payment'、'checkout\u customer\u type\u单选按钮');
功能签出\客户\类型\单选按钮(){
##您的单选按钮设置如下:
$field_id=“\u custom_key”;//在下面设置字段id(或字段键)
$options=array(//在下面设置数组中的单选按钮选项:
__(“第一选择”、“商业”),
__(“第二种选择”,“woocommerce”),
__(“第三种选择”,“woocommerce”),
);
$default=reset($options);//此处设置默认选中选项(第一个在此处设置)
回声';
回应“”。u uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;
echo'

'; $value=WC()->签出->获取值($field\u id); $value=空($value)?$default:$value; //循环通过已定义的选项数组 foreach($options作为$option){ $checked=$option==$value?'checked=“checked”:“”; 回显“.$option.”; } 回声“

”; }

相关线程:

嗨,Aeolus,很遗憾,我需要functions.php(WordPress)的php代码:-(无论如何,谢谢你!嗨,Georgy Bouras。希望你能尽快得到解决方案,先生。它正在工作,谢谢。你知道如何为管理员和客户显示所选选项吗?你能帮我回答这个php问题吗?请。时间太长了。@Georgy Bouras关于StackOverFlow的规则是一个问题,所以你应该问一个新问题为此,请在此处通知我您的新问题的链接。现在,由于此答案回答了您的初始问题并有效,您可以请回答,如果您喜欢/想要,也可以请回答,谢谢。@suryavansh抱歉,但我只回答了一些选定的与WooCommerce相关的问题。