HEX
Server: Apache/2.4.59 (Debian)
System: Linux keymana 4.19.0-21-cloud-amd64 #1 SMP Debian 4.19.249-2 (2022-06-30) x86_64
User: lijunjie (1003)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wp-content/plugins/erp/includes/updates/update-1.2.7.php
<?php

function erp_crm_alter_peoples_table_1_2_7() {
    global $wpdb;
    $wpdb->query( 'set wait_timeout = 200' );

    $people_table         = $wpdb->prefix . 'erp_peoples';
    $people_table_columns = $wpdb->get_col( 'DESC ' . $people_table, 0 );

    if ( ! in_array( 'life_stage', $people_table_columns ) ) {
        $alter_peoples_table_sql = "ALTER TABLE {$people_table} 
				  	ADD COLUMN  
					life_stage VARCHAR(100) DEFAULT NULL 
					AFTER currency";
        $wpdb->query( $alter_peoples_table_sql );
    }

    if ( ! in_array( 'contact_owner', $people_table_columns ) ) {
        $alter_peoples_table_sql = "ALTER TABLE {$people_table} 
				  	ADD COLUMN  
					contact_owner bigint(20) DEFAULT NULL
					AFTER currency";
        $wpdb->query( $alter_peoples_table_sql );
    }

    if ( ! in_array( 'hash', $people_table_columns ) ) {
        $alter_peoples_table_sql = "ALTER TABLE {$people_table} 
				  	ADD COLUMN  
					`hash` VARCHAR(40) NULL DEFAULT NULL
					AFTER currency";
        $wpdb->query( $alter_peoples_table_sql );
    }
}

erp_crm_alter_peoples_table_1_2_7();

/**
 * Move people life stage from erp_peoplemeta table to base erp_peoples table
 *
 * @since 1.2.6
 */
function erp_crm_move_people_life_stage_from_meta_to_base_table_1_2_7() {
    global $wpdb;
    $wpdb->query( 'set wait_timeout = 1200' );
    $people_table         = $wpdb->prefix . 'erp_peoples';
    $people_table_columns = $wpdb->get_col( 'DESC ' . $people_table, 0 );
    $peoplemeta_table     = $wpdb->prefix . 'erp_peoplemeta';

    $metas_to_remove = [];

    if ( in_array( 'life_stage', $people_table_columns ) ) {
        $migrate_life_stage_sql = "UPDATE {$people_table},"
                                  . " (select * from {$peoplemeta_table} where meta_key = 'life_stage') AS meta"
                                  . ' SET'
                                  . ' wp_erp_peoples.life_stage = meta.meta_value'
                                  . ' where wp_erp_peoples.id = meta.erp_people_id';
        $wpdb->query( $migrate_life_stage_sql );

        $metas_to_remove[] = 'life_stage';
    }

    if ( in_array( 'contact_owner', $people_table_columns ) ) {
        $peoplemeta_table = $wpdb->prefix . 'erp_peoplemeta';

        $migrate_contact_owner_sql = "UPDATE {$people_table}, "
                                     . " (select * from {$peoplemeta_table} where meta_key = 'contact_owner') AS meta"
                                     . ' SET'
                                     . ' wp_erp_peoples.contact_owner = meta.meta_value'
                                     . ' where wp_erp_peoples.id = meta.erp_people_id';
        $wpdb->query( $migrate_contact_owner_sql );

        $metas_to_remove[] = 'contact_owner';
        $metas_to_remove[] = 'created_by';
        $metas_to_remove[] = '_assign_crm_agent';
    }

    if ( in_array( 'hash', $people_table_columns ) ) {
        $peoplemeta_table = $wpdb->prefix . 'erp_peoplemeta';

        $migrate_contact_owner_sql = "UPDATE {$people_table}, "
                                     . " (select * from {$peoplemeta_table} where meta_key = 'hash') AS meta"
                                     . ' SET'
                                     . ' wp_erp_peoples.hash = meta.meta_value'
                                     . ' where wp_erp_peoples.id = meta.erp_people_id';
        $wpdb->query( $migrate_contact_owner_sql );

        $metas_to_remove[] = 'hash';
    }

    //@todo remove residual data on more updated version
//    if ( ! empty( $metas_to_remove ) ) {
//        $array_string = implode( "','", $metas_to_remove );
//        $sql          = "DELETE FROM {$peoplemeta_table} WHERE meta_key IN ('{$array_string}')";
//        $wpdb->query( $sql );
//    }
}

erp_crm_move_people_life_stage_from_meta_to_base_table_1_2_7();