Tag: shipping

动态运费基于Woocommerce中的自定义单选按钮

在Woocommerce中,我在结帐页面上添加了两个自定义单选按钮,点击后,我调用了一个ajax函数来添加交付费用。 这是我的代码: $(document).on(‘change’,’#shipping_method_0_local_pickup5′,function(e) { $(‘.woocommerce-shipping-fields’).css({ ‘display’: ‘none’ }); $(“#deli”).css(“display”,”block”); var selected = $(“input[type=’radio’][name=’post-del’]:checked”); var selectedVal = selected.val(); var pickurl= “?action=delivery”; $.ajax({ url: pickurl, type: “POST”, data:{ input:selectedVal, }, success: function(responseText) { jQuery(“.order-total .woocommerce-Price-amount”).html(responseText); //$(“.discount_code”).css(“display”,”block”); } }); }); 单击单选按钮时,我想在总计上添加2美元的额外价格。 add_action( ‘wp_ajax_delivery’, ‘delivery’ ); add_action( ‘wp_ajax_nopriv_delivery’, ‘delivery’ ); function delivery() { //My code do_action( ‘woocommerce_cart_calculate_fees’, ‘prefix_add_discount_line’ ); […]

Woocommerce结帐页面中的运输承运商自定义字段validation

我通过更改模板/genesis-sample/woocommerce/checkout/review-order.php在发货方法部分添加了两个自定义输入字段。我还设法有条件地要求它们。 仅当选中特定单选按钮时,输入字段才会出现并成为必需。 我使用jQuery代码使字段显示和消失。 所有这一切都很好。 代码在这里: if ( isset($_POST[‘shipping_method_0_legacy_local_pickup’]) && $_POST[‘shipping_method_0_legacy_local_pickup’] == 1 ) { $cheq = ‘true’; } else { $cheq = ‘false’; } woocommerce_form_field( ‘fieldtester1’ , array( ‘type’ => ‘text’, ‘class’ => array(‘wccs-field-class wccs-form-row-wide blahblah1’), ‘label’ => ‘Enter Your Carrier Name’, ‘required’ => $cheq, ‘placeholder’ => ‘Carrier Name’, ), $checkout->get_value( ‘fieldtester1’ )); woocommerce_form_field( ‘fieldtester2’ […]

如果在Woocommerce中选择了COD付款,请禁用特定的送货方式

如果用户选择付款“货到付款”,我需要禁用特定的送货方式。 问题是,只有每次重置WooCommerce瞬态并刷新时,以下代码才有效。 它不适用于来回的用户选择。 add_filter( ‘woocommerce_package_rates’, ‘alter_shipping_methods’, 100 ); function alter_shipping_methods( $rates ) { $chosen_gateway = WC()->session->chosen_payment_method; // If payment is Cash on delivery remove specific shipping if($chosen_gateway == ‘cod’) { foreach ( $rates as $rate_id => $rate ) { if ( $rate->label === ‘Hrvatska pošta’ ) { unset( $rates[ $rate_id ] ); } } } […]

从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’ ); ?> […]

根据选择的运输条件隐藏WooCommerce中的Checkout字段

在WooCommerce,我试图隐藏公司名称字段,只要选择“送货到家”。 我尝试了很多不同的东西。 这是我的最后一次尝试: add_filter(‘woocommerce_checkout_fields’, ‘xa_remove_billing_checkout_fields’); function xa_remove_billing_checkout_fields($fields) { $shipping_method =’pakkelabels_shipping_gls1′; // Set the desired shipping method to hide the checkout field(s). global $woocommerce; $chosen_methods = WC()->session->get( ‘chosen_shipping_methods’ ); $chosen_shipping = $chosen_methods[0]; if ($chosen_shipping == $shipping_method) { unset($fields[‘billing’][‘billing_company’]); // Add/change filed name to be hide } return $fields; } 但它所做的只是将航运公司从第一个领域转移到最后一个领域。 如何根据所选的送货方式有条件地隐藏特定的结账字段?