III. Admin

saveExtraAdminOptions( $options )

public function saveExtraAdminOptions( $options ) {
	if ( ! empty( $options['wpjobster_sample_withdrawal_enable'] ) ) {
		if ( $options['wpjobster_sample_withdrawal_enable'] == 'both' ) {
			update_option( 'wpjobster_sample_automatic_enable_withdraw', 'yes' );
			update_option( 'wpjobster_sample_enable_withdraw', 'yes' );

		} elseif ( $options['wpjobster_sample_withdrawal_enable'] == 'automatic' ) {
			update_option( 'wpjobster_sample_automatic_enable_withdraw', 'yes' );
			update_option( 'wpjobster_sample_enable_withdraw', 'no' );

		} elseif ( $options['wpjobster_sample_withdrawal_enable'] == 'manual' ) {
			update_option( 'wpjobster_sample_automatic_enable_withdraw', 'no' );
			update_option( 'wpjobster_sample_enable_withdraw', 'yes' );

		} else {
			update_option( 'wpjobster_sample_automatic_enable_withdraw', 'no' );
			update_option( 'wpjobster_sample_enable_withdraw', 'no' );

		}
	}
}

This function saves the options for manual and automatic withdrawal, set in the administrator panel.


displayAdminAutomaticWithdrawalButton( $default, $row )

public function displayAdminAutomaticWithdrawalButton( $default, $row ) {
	if ( strtolower( $row->methods ) == 'sample' ) {
		if ( wpj_get_option( 'wpjobster_sample_client_id' ) && wpj_get_option( 'wpjobster_sample_secret_key' ) )
			return wpj_get_option( 'wpjobster_sample_automatic_enable_withdraw' ) == 'yes' ? true : false;

		else
			return false;
	}

	return $default;
}

This function allows displaying the double checkmarks icon for automatically marking the order as complete.


displayProcessPaymentRequestButton( $payment_type )

public function displayProcessPaymentRequestButton( $payment_type ) {
	if ( $payment_type == 'withdrawal' && WPJ_Form::get( 'status' ) == 'pending' && wpj_get_option( 'wpjobster_sample_automatic_enable_withdraw' ) == 'yes' ) { ?>

		<input class="button-secondary" type="submit" value="<?php echo __( 'Process Sample Requests', 'wpjobster-sample' ); ?>" name="processSamplePayRequest" id="processSamplePayRequest" />

	<?php }
}

This function allows displaying the button for automatically marking multiple orders as complete.


processPaymentRequest

public function processPaymentRequest() {

	if ( ! empty( $_POST['processSamplePayRequest'] ) ) {

		$wpjobster_sample_client_id  = wpj_get_option( 'wpjobster_sample_client_id' );
		$wpjobster_sample_secret_key = wpj_get_option( 'wpjobster_sample_secret_key' );

		if ( $wpjobster_sample_client_id && $wpjobster_sample_secret_key ) {
			global $wpdb;

			$payout_info = array();

			if ( isset( $_POST['requests'] ) ) {
				foreach ( $_POST['requests'] as $id ) {
					$row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}job_withdraw WHERE id = %d AND methods LIKE '%Sample%'", $id ) );

					if ( ! empty( $row ) && $row->done == 0 ) {
						$sample_payee_id = wpj_user( $row->uid, 'sample_automatic_payee_id' ) ? wpj_user( $row->uid, 'sample_automatic_payee_id' ) : $row->payeremail;

						$payout_info[$id]['payee_id'] = $sample_payee_id;
						$payout_info[$id]['amount']   = $row->amount;
						$payout_info[$id]['userid']   = $row->uid;
						$payout_info[$id]['uniqueid'] = $id;

					}
				}
			}

			if ( $payout_info ) {
				// Process the payment
				foreach ( $payout_info as $key => $info ) {


				}

			} else {
				echo '
					<div class="notice notice-error is-dismissible">
						<p>' . __( 'No Sample order selected!', 'wpjobster-sample' ) . '</p>
					</div>
				';

			}

		} else {
			echo '
				<div class="notice notice-error is-dismissible">
					<p>' . __( 'Please fill Client ID and Secret Key fields!', 'wpjobster-sample' ) . '</p>
				</div>
			';

		}
	}
}

This function processes the payout request, and when everything is ready, it marks the order as complete.