相关疑难解决方法(0)

从Woocommerce 3.4+中的结帐字段中删除"(可选)"文本

我以前使用这个答案来隐藏基于所选运输方法的结账字段,它工作正常,直到更新(3.4.2当前版本)我认为不确定已经改变但它不再按预期工作.

以前当选择本地拾取时,某些字段被隐藏并且是可选的,当选择传送时,它将再次通过动态显示这些字段而不重新加载页面.

现在它按要求显示和隐藏字段,但是,当选择传递时,它会显示标记为必需的正确字段,但旁边还有(可选)符号,这使其成为可选字段.见下图.

在此输入图像描述

这是我修改过的剪贴板:

add_filter('woocommerce_default_address_fields', 'custom_default_checkout_fields', 10, 1 );
function custom_default_checkout_fields( $address_fields ) {
$custom_fields = array( 'country', 'address_1', 'address_2', 'state', 'postcode');
foreach($custom_fields as $field)
    $address_fields[$field]['required'] = false;
return $address_fields;
}

add_action( 'wp_footer', 'custom_checkout_field_script' );
function custom_checkout_field_script() {

$pickpoint = 'local_pickup:2';
$free_delivery = 'free_shipping:1';
$flat_rate = 'flat_rate:3';

$required = esc_attr__( 'required', 'woocommerce' );
?>
<script>
    jQuery(function($){

        var shippingMethod = $('input[name^="shipping_method"]:checked'),
            required = '<abbr class="required" title="<?php echo $required; ?>">*</abbr>',
            shippingChecked = $('input#ship-to-different-address-checkbox');

        shippingChecked.change( function(){
            console.log('Shipping Checked: '+shippingChecked.prop('checked'));
        }); …
Run Code Online (Sandbox Code Playgroud)

php wordpress jquery shipping woocommerce

12
推荐指数
3
解决办法
1万
查看次数

在 Woocommerce 中显示或隐藏所选运输方式更改的 html 元素

我正在尝试根据所选的运输方式显示/隐藏结帐页面中的某些元素。我尝试显示/隐藏的页面元素来自另一个插件,因此我尝试更改它们的显示属性。我看过很多线程,例如:

根据 Woocommerce 3 中的运输方式显示或隐藏结帐字段

但它用于结帐字段,我不确定如何为页面元素执行此操作。

然后基于这个答案线程这是我的代码到目前为止:

add_action( 'wp_footer', 'conditionally_hidding_order_delivery_date' );
function conditionally_hidding_order_delivery_date(){
    // Only on checkout page
    if( ! is_checkout() ) return;

    // HERE your shipping methods rate ID "Home delivery"
    $home_delivery = 'distance_rate_shipping';
    ?>
    <script>
        jQuery(function($){
            // Choosen shipping method selectors slug
            var shipMethod = 'input[name^="shipping_method"]',
                shipMethodChecked = shipMethod+':checked';

            // Function that shows or hide imput select fields
            function showHide( actionToDo='show', selector='' ){
                if( actionToDo == 'show' )
                    $(selector).show( 200, function(){
                        $(this).addClass("validate-required");
                    });
                else
                    $(selector).hide( 200, …
Run Code Online (Sandbox Code Playgroud)

php wordpress jquery checkout woocommerce

5
推荐指数
1
解决办法
2391
查看次数

标签 统计

jquery ×2

php ×2

woocommerce ×2

wordpress ×2

checkout ×1

shipping ×1