I am finishing my mobile application and now in the checkout screen, i want to show the same fields as i configure in woocommmerce store, i.e: default country, required fields cities value etc.
Similarly i am looking a way to get the same shipping rules i set for online store, so on preview i can show the same value.
Is there any way i can achieve this?? i looked into the documentation as in below mentioned link, but it does not shows how can i retrieve the configuration data for checkout.
http://woocommerce.github.io/woocommerce-rest-api-docs/#order-properties
Appreciate community help.
I think is not possible, you would need to create a custom plugin that creates a new endpoint and using these hooks you get checkout fields and list them:
$address_fields = apply_filters('woocommerce_billing_fields', $address_fields);
$address_fields = apply_filters('woocommerce_shipping_fields', $address_fields);
You can find more info at: https://docs.woocommerce.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/
Related
Right now I am using the ultimate member plugin to register users. But the company asked me to change the form and allow users to insert their education qualifications in a table when registering. Users need to have a button that has the ability to insert more rows (If they have more qualifications).
As far as I know, I can't use the Ultimate Member plugin for that. I searched for many table plugins but didn't find anything that can do this task. I once had done this using code. But I don't know how to apply it to this registration form. If anyone can figure out a way to embed the code to Ultimate member (to save that table data) or any plugin that can do this, please let me know soon as possible.
Updated Question
I have tried that shortcode and got confused as it ruined the page. Now I'm trying a PHP method to solve this problem.
Thank You
Well you have many options to solve this problem. What you are actually looking for is Custom Fields.
WordPress has the ability to allow post authors to assign custom fields to a post. This arbitrary extra information is known as metadata.
Now, custom fields can be created in 2 ways.
Either you write php code in a plugin/theme
Or you you install plugin which helps you build custom fields.
What you are actually looking for is to create Repeatable Field Groups. These are the field which can be replicated. As many as you want.
Some plugins which provide facility to add them in no particular order are:
Advanced Custom Fields - Repeater Field : https://www.advancedcustomfields.com/resources/repeater/
Toolset - Repetable Field Group : https://toolset.com/course-lesson/creating-and-displaying-repeatable-field-groups/
Metabox - Meta Box Group : https://metabox.io/plugins/meta-box-group/
They all will give you ability to create repeater fields.
Repeater field can be made for both users and posts or Custom Post Types(CPT). You need them for Users. I am not sure which one of them allows you to create repeater field for Users but you can check on there website.
PS : These are all paid plugins. (They may have free version of them but repeater field comes with PRO).
Once you have created a field for users you can use that field in your registration form.
UPDATED ANSWER
As the question author wants to add the field using PHP, the field can be added as so.
After looking at all the hooks available to the user by UM (Ultimate Member) plugin. I found two hook that can be used to add fields and save in the backend.
um_after_form : Some actions after register form fields.
add_action( 'um_after_form', 'my_after_form', 10, 1 );
function my_after_form( $args ) {
// add your repetable fields here.
}
um_after_save_registration_details : Action on user registration after save details. This runs after the form is submited and user is registered. Use this to save data inside the user database.
add_action( 'um_after_save_registration_details', 'my_after_save_registration_details', 10, 2 );
function my_after_save_registration_details( $user_id, $submitted ) {
// Save field here.
// You have user_id and submitted data, do your thing here.
}
I'm currently working on a multi STRIPE checkout for different STRIPE accounts based on the shipping country.
So far everything works smoothly by using the wc_stripe_params, wc_stripe_payment_request_params and woocommerce_stripe_request_headers filters and overloading the respective classes for the webhooks. There is one problem though.
Upon checkout page load, where the payment methods are, STRIPE renders CDATA values for their JS files.
When the initial shipping country guess through geoip database was correct and the customer doesnt change the shipping country, everything works fine, since the correct public keys were inserted into the JS of STRIPE. When the customer changes the shipping country there is no way to manipulate the already processed JS variables. This is why I want to split up the checkout process so that the last page is just for payment options based upon the before selected shipping country.
I know that there are multiple plugins for multi-step checkout available, but all use ajax for a smooth rendering, which results in the same error. I understand the way how to customize different processes in WP or WC, but I don't know how to really tackle this one since the formon the checkout page is posted to the wc_get_checkout_url() which needs payments selected and done - it doesnt look like there is a real multi step without ajax planned?
Thanks in advance for any help or thoughts
Problem solved by splitting up the checkout process into multiple forms and posting the data as one to the woocommerce checkout controller
I am looking for an easy way to associate two products with each other on checkout while at the same time forcing the user to create the association if it doesn't exist yet. Basically, a user can by hosting, but in order to complete the checkout, they also need a domain name. I have classes for each, but I am trying to think of ways to solve two problems:
On checkout, display that two products are associated
Force the user to create the association
Any ideas on what I can use to do that?
UPDATE
What I did was:
Created two separate products
If you add the one, it does a check to see if this item has been linked to another product
If not, it takes you to a custom page forcing you to add and assign the other product
This works, but it's not very elegant. Any better suggestions would be much appreciated.
Use Rules to display messages to the user. Use the event on "add to cart", check the type of product, then check to see if the associated product is added to the cart, if not show message saying you also need to add a hosting package and auto redirect them there. Then upon checkout, check to see if one of those products exist, does the other exist in the cart? Throw same message and auto redirect them to the missing one.
You may need to use components with your rules to get the full effect. But that is what I would do.
I am using one plugin known as Wp store Locator which is not based on custom post type.So that plugin gives one list of store as output and it has in built template for it.I have modified that plugin in a such way that on click of More Details it should take me to detail page of that particular clicked store.
I have built link like this localhost/wordpress/?wpsl-id=3.
So my question is that how can I show only on particular store? I have built one template in that plugin but I don't have any idea how can I use that.
Any help from Wp Store Locator user would be highly appericiated.
I have a question regarding WooCommerce.
In the last step of the checkout, I want to add some meta information to the product. Basically, at the end of the checkout process the user can choose to offer the product to a friend. He will enter fields such as friend's email, name...
I want to be able to retrieve this information in the admin panel when I click on the details of the order, in the "product" block.
... And I have to idea how to do that. I found some information on how to add custom fields to the order, but how do I add information to the product in the order and not the order itself?
Thank you. I'm in a bit of a blur right now.
Mike Jolley posted the complete code you can insert in your theme's functions.php
I recently used it and works like a charm.
https://gist.github.com/mikejolley/1604009
I think the Woothemes Product Add-ons plugin may be exactly what you are looking for. You can use it to add custom fields of nearly any type to your individual products. It will display them on the cart page and save them in your admin.
Woocommerce allow some hooks and filters to add fields on checkout pag, but yes it requires strong php knowleget. However there is plugin available here: Checkout option manager plugin