Bókun-WordPress Tour Integration Plugin
Budget: $250 – $750 USD
Description:
**Objective:** Develop a WordPress plugin that integrates existing tours on the Bókun platform with the WordPress website, importing the tour content into the Custom Post Type (CPT) "tour".
**Completion Date:** May 20th
**Prerequisites:**
* Bókun and WordPress APIs are already enabled.
* The access keys (Access Key and Secret Key) for the Bókun API have already been created.
* An application password for wordpress rest api has already been generated.
* The "tour" CPT is already registered correctly in WordPress with 'show_in_rest' => true and a 'rest_base' set (probably 'tour').
**Task Description:**
The WordPress plugin must perform the following actions:
* **Connect to the Bókun API:** Use the provided access keys (Access Key and Secret Key) to authenticate and communicate with the bókun rest api. Authentication via `X-Bokun-AccessKey` and `X-Bokun-SecretKey` headers will be required to access the data.
* **Download the list of Bókun tours:** Query a specific Bókun API endpoint to get a list of existing tours (activities). The `/ activity.json/search` endpoint is most likely for this purpose. The plugin should be able to handle pagination of the API response if there are a large number of tours.
* **Check for the existence of tours in WordPress:** For each tour returned by the Bókun API, the plugin should check if a corresponding post already exists in WordPress. This verification will be done using the **unique tour ID on Bókun**. A custom field (`wp:meta_key`) called, for example, `bokun_id`, should be used to store the Bókun ID in each "tour" post type in WordPress. The wordpress rest api endpoint for querying posts of type "tour" (`https://site/wp-json/wp/v2/tour`, assuming `rest_base` is 'tour') can be used with the `meta_key` and `meta_value` parameters to fetch posts with a given bókun id.
* **Skip existing tours:** If a tour with the same Bókun ID already exists in WordPress, the plugin should **skip this tour and move on to the next one**, without creating a new post or updating the existing one.
* **Import content from new tours:** For Bókun tours that do not exist in WordPress, the plugin must create a new post in the "tour" CPT. The import should include:
* **Tour Title:** Map the Bókun tour title to the WordPress post title.
* **Tour Content:** Map the Bókun tour description to the main content of the WordPress post.
* **Tour summary (optional):** If available, map the Bókun tour summary (excerpt) to the WordPress post summary (`excerpt`).
* **Custom fields (meta data):** Create and fill custom fields in WordPress ("wp:postmeta" with "wp:meta_key") with relevant information about the Bókun tour, such as price, duration, location and the Bókun ID itself (`bokun_id`). Analyzing the ` iglesiasviagenseturismo.WordPress.2025-04-26.txt` file is crucial to identify the correct `wp:meta_key` names to be used.
* **Featured image (optional):** If the tour on Bókun has photos, the plugin can download the first photo and set it as the featured image (`featured_media`) of the post on Wordpress, using the WordPress rest api endpoint for media (`https://site/wp-json/wp/v2/media`).
* **Exclude calendar/availability information:** The integration should **focus exclusively on the descriptive content of the tours**. Booking calendars **should not be imported automatically**.
**Manual addition of calendars:** Booking calendars for imported tours should be added **manually** through the Bókun Marketplace within the WordPress environment, linking the Bókun products to the corresponding "tour" type posts.
**Logging:** The plugin should keep a record of the actions performed, including the number of tours downloaded, created, omitted and any errors occurred during the integration process.
**Technologies:**
* PHP (Wordpress core language)
* Bókun Rest API
* Wordpress Rest API
* Python `requests` library (optional for test scripts or auxiliary tasks)
**Deliverable:**
The expected result is a functional WordPress plugin that, when activated and configured (with the necessary API keys), is capable of importing Bókun tours into WordPress according to the specifications described. The plugin code should be well commented and follow WordPress development best practices.
**Information about the Bókun Tourism Services Marketplace**
https://api-docs.bokun.dev/rest-v2
Category : IT & Programming
Subcategory : Wordpress
What is the scope of the project? : Package Installation/Configuration
Is this a project or a job position? : A project
I currently have : I have specifications
Required availability : As needed
API integrations : Other (Other APIs)
**Objective:** Develop a WordPress plugin that integrates existing tours on the Bókun platform with the WordPress website, importing the tour content into the Custom Post Type (CPT) "tour".
**Completion Date:** May 20th
**Prerequisites:**
* Bókun and WordPress APIs are already enabled.
* The access keys (Access Key and Secret Key) for the Bókun API have already been created.
* An application password for wordpress rest api has already been generated.
* The "tour" CPT is already registered correctly in WordPress with 'show_in_rest' => true and a 'rest_base' set (probably 'tour').
**Task Description:**
The WordPress plugin must perform the following actions:
* **Connect to the Bókun API:** Use the provided access keys (Access Key and Secret Key) to authenticate and communicate with the bókun rest api. Authentication via `X-Bokun-AccessKey` and `X-Bokun-SecretKey` headers will be required to access the data.
* **Download the list of Bókun tours:** Query a specific Bókun API endpoint to get a list of existing tours (activities). The `/ activity.json/search` endpoint is most likely for this purpose. The plugin should be able to handle pagination of the API response if there are a large number of tours.
* **Check for the existence of tours in WordPress:** For each tour returned by the Bókun API, the plugin should check if a corresponding post already exists in WordPress. This verification will be done using the **unique tour ID on Bókun**. A custom field (`wp:meta_key`) called, for example, `bokun_id`, should be used to store the Bókun ID in each "tour" post type in WordPress. The wordpress rest api endpoint for querying posts of type "tour" (`https://site/wp-json/wp/v2/tour`, assuming `rest_base` is 'tour') can be used with the `meta_key` and `meta_value` parameters to fetch posts with a given bókun id.
* **Skip existing tours:** If a tour with the same Bókun ID already exists in WordPress, the plugin should **skip this tour and move on to the next one**, without creating a new post or updating the existing one.
* **Import content from new tours:** For Bókun tours that do not exist in WordPress, the plugin must create a new post in the "tour" CPT. The import should include:
* **Tour Title:** Map the Bókun tour title to the WordPress post title.
* **Tour Content:** Map the Bókun tour description to the main content of the WordPress post.
* **Tour summary (optional):** If available, map the Bókun tour summary (excerpt) to the WordPress post summary (`excerpt`).
* **Custom fields (meta data):** Create and fill custom fields in WordPress ("wp:postmeta" with "wp:meta_key") with relevant information about the Bókun tour, such as price, duration, location and the Bókun ID itself (`bokun_id`). Analyzing the ` iglesiasviagenseturismo.WordPress.2025-04-26.txt` file is crucial to identify the correct `wp:meta_key` names to be used.
* **Featured image (optional):** If the tour on Bókun has photos, the plugin can download the first photo and set it as the featured image (`featured_media`) of the post on Wordpress, using the WordPress rest api endpoint for media (`https://site/wp-json/wp/v2/media`).
* **Exclude calendar/availability information:** The integration should **focus exclusively on the descriptive content of the tours**. Booking calendars **should not be imported automatically**.
**Manual addition of calendars:** Booking calendars for imported tours should be added **manually** through the Bókun Marketplace within the WordPress environment, linking the Bókun products to the corresponding "tour" type posts.
**Logging:** The plugin should keep a record of the actions performed, including the number of tours downloaded, created, omitted and any errors occurred during the integration process.
**Technologies:**
* PHP (Wordpress core language)
* Bókun Rest API
* Wordpress Rest API
* Python `requests` library (optional for test scripts or auxiliary tasks)
**Deliverable:**
The expected result is a functional WordPress plugin that, when activated and configured (with the necessary API keys), is capable of importing Bókun tours into WordPress according to the specifications described. The plugin code should be well commented and follow WordPress development best practices.
**Information about the Bókun Tourism Services Marketplace**
https://api-docs.bokun.dev/rest-v2
Category : IT & Programming
Subcategory : Wordpress
What is the scope of the project? : Package Installation/Configuration
Is this a project or a job position? : A project
I currently have : I have specifications
Required availability : As needed
API integrations : Other (Other APIs)