Tell us what you are trying to do?
We haven't changed anything on our site in ages relating to our Toolset Types fields, but we're suddenly getting errors from Toolset types.
Is there any documentation that you are following?
No
Is there a similar example that we can see?
No
What is the link to your site?
N/A. The error appears when someone tries to pay for an order through WooCommerce. For some reason Toolset Types is trying to do something with the fields we added to orders. Not sure why Toolset is doing something during the checkout phase, since the fields we added are only for the backend.
This is the error we're getting all of sudden:
Uncaught TypeError: Cannot access offset of type string on string in /www/gangaji_212/public/wp-content/plugins/types/application/models/field/mapper/abstract.php:125
Stack trace:
#0 /www/gangaji_212/public/wp-content/plugins/types/application/models/field/type/select/mapper/legacy.php(45): Types_Field_Mapper_Abstract->apply_options_filter(Array, Array)
#1 /www/gangaji_212/public/wp-content/plugins/types/application/models/field/service.php(54): Types_Field_Type_Select_Mapper_Legacy->find_by_id('gf-order-type', 3380051)
#2 /www/gangaji_212/public/wp-content/plugins/types/application/models/field/group/mapper/legacy.php(55): Types_Field_Service->get_field(Object(Types_Field_Gateway_Wordpress_Post), 'gf-order-type', 3380051)
#3 /www/gangaji_212/public/wp-content/plugins/types/application/models/post/builder.php(36): Types_Field_Group_Mapper_Legacy->find_by_post(Object(WP_Post), 9999)
#4 /www/gangaji_212/public/wp-content/plugins/types/application/models/post/deletion.p" while reading response header from upstream, client: 69.181.161.91, server: gangaji.org, request: "POST /?wc-ajax=checkout HTTP/1.1", upstream: "hidden link:", host: "gangaji.org:21331", referrer: "hidden link"
Hello,
I have tried it in a fresh WP installation + the latest version of Toolset plugins + Woocommerce plugin, but don't see the problem.
See below test site:
Login URL: hidden link
Custom select field in post type "Order":
hidden link
In frontend:
hidden link
I can complete the checkout without any issue.
Is there any missing steps? Can you reproduce the same problem in above test site?
We are using the filter wpt_field_options and that might be causing the problem. In the documentation, it says not to use that filter anymore, but I can't find a replacement. What is the current filter or hook to alter the items in a drop down types field?
No, there isn't new filter hook.
Since you just need it work in admin side, you can use WordPress function is_admin() to check if it is admin side, then trigger your custom PHP codes, for example:
if ( ! is_admin() ) {
echo "You are viewing the theme";
} else {
echo "You are viewing the WordPress Administration Panels";
}
More help:
https://toolset.com/documentation/programmer-reference/types-api-filters/#wpt_field_options
Also looks like our function is old, returning the old format in the filter instead of with #value, #title keys. Now with PHP 8, it's a fatal error instead of a warning.
This is resolved now. Thanks for your assistance!
My issue is resolved now. Thank you!