Php Woocommerce Local Pick Plus-修改以强制拾取所有项目

Php Woocommerce Local Pick Plus-修改以强制拾取所有项目,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我正在使用woocommerce的Local Pick Plus插件,它几乎是我所需要的一切,除了客户必须手动选择购物车中的每个产品作为配送或本地皮卡 我想知道是否有一种简单的方法可以强制客户发货或取货我最终通过编写自己的函数来解决这个问题,只执行我特别需要的操作。此功能添加了一个选项,从下拉列表中选择要从哪个商店取货,然后相应地更新发货 /** * Add store location select dropdown in checkout page **/ add_filter(

我正在使用woocommerce的Local Pick Plus插件,它几乎是我所需要的一切,除了客户必须手动选择购物车中的每个产品作为配送或本地皮卡


我想知道是否有一种简单的方法可以强制客户发货或取货

我最终通过编写自己的函数来解决这个问题,只执行我特别需要的操作。此功能添加了一个选项,从下拉列表中选择要从哪个商店取货,然后相应地更新发货

    /**
 * Add store location select dropdown in checkout page
 **/
add_filter( 'woocommerce_checkout_fields' , 'custom_store_pickup_field');

function custom_store_pickup_field( $fields ) {

      $fields['billing']['store_pickup'] = array(
        'type'     => 'select',
        'options'  => array(
        'option_0'=> 'Please Select a Delivery Option',
        'option_1' => 'Delivery',
        'option_2' => 'Gym1',
        'option_3' => 'Gym2'
        ),
     'label'     => __('Delivery or Store Pickup', 'woocommerce'),
    'required'  => true,
    'class'     => array('store-pickup form-row-wide'),
    'id'        => 'store_pickup_val',
    'clear'     => true
     );


     return $fields;
}

//* Process the checkout
 add_action('woocommerce_checkout_process', 'wps_select_checkout_field_process');
 function wps_select_checkout_field_process() {
    global $woocommerce;
    // Check if set, if its not set add an error.
    if ($_POST['store_pickup'] == "option_0")
     wc_add_notice( '<strong>Please select a day part under Delivery options</strong>', 'error' );
 }


add_action( 'woocommerce_after_checkout_form', 'gym_opening_hours', 6);

function gym_opening_hours() {

  ?>
    <script type="text/javascript">
        jQuery('#store_pickup_val').change(function(){

            jQuery('body').trigger('update_checkout');


            jQuery( ".gym-collection" ).remove(); 

            if (this.value == 'option_1') {
                jQuery('#shipping_method_0_flat_rate1').prop('checked', true);
            }

            if (this.value == 'option_2') {
                 jQuery( "<p>Order can be collected between 4pm - 7pm on Tuesdays</p>" ).addClass("gym-collection").insertAfter( "#store_pickup_val" );
                 jQuery('#shipping_method_0_local_pickup3').prop('checked', true);  
            } 
                if (this.value == 'option_3') {
                 jQuery( "<p>Order can be collected between 4pm - 7pm on Tuesdays</p>" ).addClass("gym-collection").insertAfter( "#store_pickup_val" );
                 jQuery('#shipping_method_0_local_pickup3').prop('checked', true);          
            } 
            else {

            }

        });
    </script>
    <?php

}


# add this in your plugin file and that's it, the calculate_shipping method of your shipping plugin class will be called again
function action_woocommerce_checkout_update_order_review($array, $int)
{
    WC()->cart->calculate_shipping();
    return;
}
add_action('woocommerce_checkout_update_order_review', 'action_woocommerce_checkout_update_order_review', 10, 2);
?>

 <?php

你可以在购物车页面上设置按钮,上面写着“发货所有物品”或“取货所有物品”。我可以修改插件的工作方式吗?点击“取货”按钮可以选择所有购物车物品的取货?有趣的是,我有完全相同的问题,这不是很简单robust@timboon是的,当然。@JacobRaccuia你有什么文件可以帮我做吗?不确定从哪里开始