- Odoo JSON-RPC client (no Composer, uses wp_remote_post) - Admin settings page under WooCommerce with connection test - Customer linking: search Odoo partners from WP user profile - My Account: Odoo Invoices tab with PDF proxy download - My Account: Book a Meeting tab (slot calculator + calendar.event) - WC order → Odoo sale.order auto-sync on processing status - Products matched by SKU; partner auto-created from billing info - Uninstall cleanup (options, user meta, order meta, DB table) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
46 lines
1.2 KiB
PHP
46 lines
1.2 KiB
PHP
<?php
|
|
/**
|
|
* Runs when the plugin is deleted from the WP admin.
|
|
* Removes all options and the customer-links table.
|
|
*/
|
|
|
|
defined( 'WP_UNINSTALL_PLUGIN' ) || exit;
|
|
|
|
// Remove plugin options
|
|
$options = [
|
|
'woodoo_odoo_url',
|
|
'woodoo_odoo_db',
|
|
'woodoo_odoo_username',
|
|
'woodoo_odoo_api_key',
|
|
'woodoo_meeting_duration',
|
|
'woodoo_available_days',
|
|
'woodoo_available_from',
|
|
'woodoo_available_to',
|
|
'woodoo_meeting_title_prefix',
|
|
'woodoo_sync_orders',
|
|
];
|
|
foreach ( $options as $opt ) {
|
|
delete_option( $opt );
|
|
}
|
|
|
|
// Remove user meta
|
|
global $wpdb;
|
|
$wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key IN (
|
|
'woodoo_odoo_partner_id',
|
|
'woodoo_odoo_partner_name',
|
|
'woodoo_so_count'
|
|
)" );
|
|
|
|
// Remove order meta
|
|
$wpdb->query( "DELETE FROM {$wpdb->postmeta} WHERE meta_key IN (
|
|
'_woodoo_so_id',
|
|
'_woodoo_partner_id'
|
|
)" );
|
|
|
|
// Drop custom table
|
|
$wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woodoo_customer_links" );
|
|
|
|
// Clear any transients
|
|
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_woodoo_%'" );
|
|
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_timeout_woodoo_%'" );
|