Server IP : 192.158.238.246 / Your IP : 18.188.59.124 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/7779/task/7779/cwd/plugins/give/src/TestData/Commands/ |
Upload File : |
<?php namespace Give\TestData\Commands; use Exception; use Give\TestData\Factories\DonationFormFactory; use Give\TestData\Repositories\DonationFormRepository; use WP_CLI; /** * Class FormSeedCommand * @package Give\TestData\Commands * * A WP-CLI command to generate Donation Forms */ class FormSeedCommand { /** * @var DonationFormFactory */ private $donationFormFactory; /** * @var DonationFormRepository */ private $donationFormRepository; public function __construct( DonationFormFactory $donationFormFactory, DonationFormRepository $donationFormRepository ) { $this->donationFormFactory = $donationFormFactory; $this->donationFormRepository = $donationFormRepository; } /** * Generate Donation Forms * * ## OPTIONS * * [--count=<count>] * : Number of donations to generate * default: 10 * * [--template=<template>] * : Form template * default: random * options: * - sequoia * - legacy * - random * * [--set-goal=<bool>] * : Set donation form goal * default: false * * [--set-terms=<bool>] * : Set donation form terms and conditions * default: false * * [--preview=<preview>] * : Preview generated data * default: false * * [--consistent=<consistent>] * : Generate consistent data * default: false * * ## EXAMPLES * * wp give test-donation-form --count=10 --template=legacy --set-goal=true --set-terms=true * * @when after_wp_load */ public function __invoke($args, $assocArgs) { global $wpdb; // Get CLI args $count = WP_CLI\Utils\get_flag_value($assocArgs, 'count', $default = 10); $preview = WP_CLI\Utils\get_flag_value($assocArgs, 'preview', $default = false); $template = WP_CLI\Utils\get_flag_value($assocArgs, 'template', $default = 'random'); $setGoal = WP_CLI\Utils\get_flag_value($assocArgs, 'set-goal', $default = false); $setTerms = WP_CLI\Utils\get_flag_value($assocArgs, 'set-terms', $default = false); $consistent = WP_CLI\Utils\get_flag_value($assocArgs, 'consistent', $default = false); // Check form template if ( ! $this->donationFormFactory->checkFormTemplate($template)) { WP_CLI::error( WP_CLI::colorize("Unsupported form template: %g{$template}%n") ); } // Factory config $this->donationFormFactory->setFormTemplate($template); $this->donationFormFactory->setDonationFormGoal($setGoal); $this->donationFormFactory->setTermsAndConditions($setTerms); // Generate donation forms $forms = $this->donationFormFactory->consistent($consistent)->make($count); if ($preview) { WP_CLI\Utils\format_items( 'table', $forms, array_keys($this->donationFormFactory->definition()) ); } else { $progress = WP_CLI\Utils\make_progress_bar('Generating donation forms', $count); // Start DB transaction $wpdb->query('START TRANSACTION'); try { foreach ($forms as $form) { $this->donationFormRepository->insertDonationForm($form); $progress->tick(); } $wpdb->query('COMMIT'); $progress->finish(); } catch (Exception $e) { $wpdb->query('ROLLBACK'); WP_CLI::error($e->getMessage()); } } } }