Add Privacy to logicboxes Module
Hello Blestars,
in this tuto we will show you how to add privacy protection to Logicboxes module as Configurable Options.
1 - First we need to add Configurable Options Group, let call it Protection ID
2 - Create Configurable Options , type checkbox, with Client can Add and Edit, in label put what you want like 'Privacy Protection', in name you should put 'purchase-privacy', in option set the name and in value put 'true' , set price, select group 'Protection ID' . a screen shot like this
3 - Now, edit the domain package to support Configurable Options that we have added, save .
at here we have finished the easy task, now we will attack the hard part, as we need to add some code in the logicboxes Module , we should open components/modules/logicboxes/logicboxes.php , in addService() function then search
$domain_field_basics = [
'years' => true,
'ns' => true,
'customer-id' => true,
'reg-contact-id' => true,
'admin-contact-id' => true,
'tech-contact-id' => true,
'billing-contact-id' => true,
'invoice-option' => true,
'protect-privacy' => true
];
Replace with
$domain_field_basics = [
'years' => true,
'ns' => true,
'customer-id' => true,
'reg-contact-id' => true,
'admin-contact-id' => true,
'tech-contact-id' => true,
'billing-contact-id' => true,
'invoice-option' => true,
'protect-privacy' => true,
'purchase-privacy' => true
];
Search
$vars['invoice-option'] = 'NoInvoice';
$vars['protect-privacy'] = 'false';
replace with
$vars['invoice-option'] = 'NoInvoice';
$vars['protect-privacy'] = 'false';
$vars['purchase-privacy'] = 'false';
search
$response = $domains->register(array_intersect_key($vars, $domain_fields));
replace with
// Add Protect privacy to the domain
if (isset($vars['configoptions']['purchase-privacy'])) {
$vars['protect-privacy'] = 'true';
$vars['purchase-privacy'] = 'true';
}
$response = $domains->register(array_intersect_key($vars, $domain_fields));
in editService() function, search
$service_fields = $this->serviceFieldsToObject($service->fields);
under add
// Set any config options
$vars['configoptions'] = (isset($vars['configoptions']) ? (array)$vars['configoptions'] : null);
// Only provision the service if 'use_module' is true
if ($vars['use_module'] == 'true') {
// Update config option fields
if (isset($vars['configoptions'])) {
$response = $domains->details(
['order-id' => $service_fields->{'order-id'}, 'options' => ['OrderDetails']]
);
$this->processResponse($api, $response);
$order = $response->response();
// Add Protect privacy to the domain if applicable
if ($vars['configoptions']['purchase-privacy']
&& ($order->privacyprotectedallowed == 'true')
&& ($order->isprivacyprotected == 'false')
) {
$data = array(
'order-id' => $service_fields->{'order-id'},
'invoice-option' => 'NoInvoice'
);$response = $domains->purchasePrivacy($data);
$this->processResponse($api, $response);
}
}
if ($this->Input->errors()) {
return;
}
}
in renewService() function , search
$vars = [
'years' => 1,
'order-id' => $fields->{'order-id'},
'exp-date' => $order->endtime,
'invoice-option' => 'NoInvoice'
];
under add
// Rnew Privacy protection if added to the domain
if (isset($service->options) ) {
foreach ($service->options as $option) {
if (($option['option_name'] == 'purchase-privacy')
&& ($order->privacyprotectedallowed)
) {
$vars['purchase-privacy'] = 'true';
}
}
}
save the change, now you are done .