Wordpress + WooCommerce plugin

Job ID: 30729193

Budget: €30 – €250 EUR

I need a Wordpress and WooCommerce plugin for the latest versions (wp: 5.7, Woocommerce: 5.4)

Admin:
After installing the plugin it has to make an admin menu under the name Box management.

Inside this menu I need 4 input field:
- Url - input varchar(255)
- Token - input varchar(255)
- Discount - input int
- Message - textarea varchar(255)
I want to store these data in the database in box_management table.

Front:
I need some development on the WooCommerce checkout page.
I need a button with a label: Do you have boxes?
When a user click on the button, there must be an input field where the user can enter their identification code, and a Send button.

When the user presses the send button the plugin has to start an API call (GET):
Api url: {url_from_box_management_table}/{users_identification_code}
The header must include token: Token:{token_from_box_management_table}

The response will include 2 data:
- available boxes
- boxes at user

These data must be shown. At this point I need to show Message field from box_management table and replace special stings like „{available_boxes}” and „{boxes_at_user}” to the received data.

After this need some adjustment of the final amount.
- If the {available_boxes} >= {all items in the basket} THEN the total should be {all items in the basket} * {discount_field_from_box_management_table}
- If the {available_boxes} < {all items in the basket} THEN the total should be {available_boxes} * {discount_field_from_box_management_table}

Based on the example, the total should be adjusted by the discount!

At this point I need a cancel button, if the user decides not to use the boxes.

If the user sends the order and makes the payment, after the successful payment I need another API call at the point in the code where woocommerce saves that the payment was successful.
API call (POST):
Api url: {url_from_box_management_table}/order/{users_identification_code}/{used_boxes}
The header must include token: Token:{token_from_box_management_table}

The {used_boxes} are the same as all the items in the basket, if there are enough boxes available. Otherwise, the {used_boxes} are the same as the available boxes.
Related categories: PHP JavaScript WordPress MySQL HTML