This is the technical support forum for WPML - the multilingual WordPress plugin.
Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.
Tagged: Bug, Compatibility
This topic contains 5 replies, has 0 voices.
Last updated by Noman 1 week, 3 days ago.
Assisted by: Noman.
Author | Posts |
---|---|
June 10, 2025 at 11:06 am #17121628 | |
alessandraB-3 |
Background of the issue: Symptoms: Questions: |
June 11, 2025 at 6:13 pm #17127599 | |
Noman WPML Supporter since 06/2016
Languages: English (English ) Timezone: Asia/Karachi (GMT+05:00) |
I'm still debugging this issue and get back to you with an update soon. Thank you |
June 12, 2025 at 6:25 pm #17131235 | |
Noman WPML Supporter since 06/2016
Languages: English (English ) Timezone: Asia/Karachi (GMT+05:00) |
I’ve tried troubleshooting steps but none of them worked so far, I’m going to escalate this issue to our 2nd tier support for further review. Thank you for your cooperation |
June 14, 2025 at 2:40 pm #17135492 | |
Noman WPML Supporter since 06/2016
Languages: English (English ) Timezone: Asia/Karachi (GMT+05:00) |
I have escalated this issue to our 2nd tier support and I will update you as soon as I have some news. Thank you for your cooperation and patience. |
June 18, 2025 at 4:53 pm #17147805 | |
Noman WPML Supporter since 06/2016
Languages: English (English ) Timezone: Asia/Karachi (GMT+05:00) |
Our 2nd tier support said, this issue is caused by the Visual Composer PRO plugin registering a custom post type (vcv_headers) without proper labels, which conflicts with WPML. This isn’t a bug in WPML, but we’ve added a workaround on our side to avoid the error. There are two possible Workaround and you can follow any of them: === Please backup your database and website first for safety reasons === Workaround 1 (recommended): add_filter( 'wpml_post_type_dto_filter', function ( $postTypeObject ) { if ( is_object( $postTypeObject ) ) { $default = $postTypeObject->name ?? ''; if ( ! isset( $postTypeObject->labels ) || ! is_object( $postTypeObject->labels ) ) { $postTypeObject->labels = new stdClass(); } if ( empty( $postTypeObject->name ) ) { $postTypeObject->name = $default; } if ( empty( $postTypeObject->labels->name ) ) { $postTypeObject->labels->name = $default; } if ( empty( $postTypeObject->labels->singular_name ) ) { $postTypeObject->labels->singular_name = $default; } } return $postTypeObject; } ); Workaround 2: Replace below code: protected function registerPostType() { register_post_type( With: protected function registerPostType() { if (!isset($this->postNamePlural)){ $this->postNamePlural = $this->postNameSlug; } register_post_type( However, this change can be lost if the plugin updates. We also recommend reporting this to the Visual Composer PRO team so they can fix it in their code. Kindly let me know the results, |
July 24, 2025 at 6:57 pm #17269062 | |
Noman WPML Supporter since 06/2016
Languages: English (English ) Timezone: Asia/Karachi (GMT+05:00) |
Update: Visual Composer plugin author mentioned that this should be fixed with the version 45.13 |