因此,我负责在Give插件设置中开发一个自定义部分,该部分可让网站管理员将两个值配对在一起并将它们存储在数据库中,我尝试通过多个挂钩和API查找,但无济于事,您能帮我吗?
我已经尝试过使用Give Hook Helper,这样也许可以使用正确的钩子,但是我不确定。
<?php
/**
* Plugin Name: Payment Settings Config
* Plugin URI: https://plant-for-the-planet.org/
* Description: Allow the configuration of multiple payment accounts
* Version: 1.0
* Author: Kareem Shamayleh
* Author URI:
**/
function payment_config_advanced_settings( $settings ) {
$current_section = give_get_current_setting_section();
switch ( $current_section ) {
case 'stripe':
$settings = array(
array(
'id' => 'payment_advanced_settings',
'type' => 'title',
),
array(
'name' => __( 'Country', '' ),
'desc' => __( 'Choose country to pair with Account Key', '_country' ),
'id' => __('planet_country' , '_Country'),
'type' => 'select',
'default' => 'disabled',
),
array(
'name' => __( 'Account Key', '' ),
'desc' => __( 'Write down an account key to pair with a Country', '_acctkey' ),
'id' => __('planet_acctKey' , '_acctkey'),
'type' => 'text',
)
);
}
return $settings;
}
add_filter( 'give_get_settings_advanced', 'payment_config_advanced_settings', 10, 1 );
function plant_config_advanced_settings_display($field_options){
?> <form method="post"><label for=\"country\">Country</label>
<select id="<?php echo esc_attr( $field_options['id'] ) . '_Country'; ?>" name=\"country\" class=\"form-control\">
<option value=\"\" selected='selected'></option>
<option value=\"Afghanistan\">Afghanistan</option>
<option value=\"Åland_Islands\">Åland Islands</option>
<option value=\"Albania\">Albania</option>
<option value=\"Algeria\">Algeria</option>
<option value=\"American_Samoa\">American Samoa</option>
<option value=\"Andorra\">Andorra</option>
<option value=\"Angola\">Angola</option>
<option value=\"Anguilla\">Anguilla</option>
<option value=\"Antarctica\">Antarctica</option>
<option value=\"Antigua_and_Barbuda\">Antigua and Barbuda</option>
<option value=\"Argentina\">Argentina</option>
<option value=\"Armenia\">Armenia</option>
<option value=\"Aruba\">Aruba</option>
<option value=\"Australia\">Australia</option>
<option value=\"Austria\">Austria</option>
<option value=\"Azerbaijan\">Azerbaijan</option>
<option value=\"Bahamas\">Bahamas</option>
<option value=\"Bahrain\">Bahrain</option>
<option value=\"Bangladesh\">Bangladesh</option>
<option value=\"Barbados\">Barbados</option>
<option value=\"Belarus\">Belarus</option>
<option value=\"Belgium\">Belgium</option>
<option value=\"Belize\">Belize</option>
<option value=\"Benin\">Benin</option>
<option value=\"Bermuda\">Bermuda</option>
<option value=\"Bhutan\">Bhutan</option>
<option value=\"Bolivia\">Bolivia</option>
<option value=\"Bosnia_and_Herzegovina\">Bosnia and Herzegovina</option>
<option value=\"Botswana\">Botswana</option>
<option value=\"Bouvet_Island\">Bouvet Island</option>
<option value=\"Brazil\">Brazil</option>
<option value=\"British_Indian_Ocean_Territory\">British Indian Ocean Territory</option>
<option value=\"BruneiDarussalam\">Brunei Darussalam</option>
<option value=\"Bulgaria\">Bulgaria</option>
<option value=\"BurkinaFaso\">Burkina Faso</option>
<option value=\"Burundi\">Burundi</option>
<option value=\"Cambodia\">Cambodia</option>
<option value=\"Cameroon\">Cameroon</option>
<option value=\"Canada\">Canada</option>
<option value=\"CapeVerde\">Cape Verde</option>
<option value=\"CaymanIslands\">Cayman Islands</option>
<option value=\"CentralAfricanRepublic\">Central African Republic</option>
<option value=\"Chad\">Chad</option>
<option value=\"Chile\">Chile</option>
<option value=\"China\">China</option>
<option value=\"ChristmasIsland\">Christmas Island</option>
<option value=\"Cocos(Keeling)Islands\">Cocos (Keeling) Islands</option>
<option value=\"Colombia\">Colombia</option>
<option value=\"Comoros\">Comoros</option>
<option value=\"Congo\">Congo</option>
<option value=\"Congo,TheDemocraticRepublicofThe\">Congo, The Democratic Republic of The</option>
<option value=\"CookIslands\">Cook Islands</option>
<option value=\"CostaRica\">Costa Rica</option>
<option value=\"CoteD'ivoire\">Cote D'ivoire</option>
<option value=\"Croatia\">Croatia</option>
<option value=\"Cuba\">Cuba</option>
<option value=\"Cyprus\">Cyprus</option>
<option value=\"CzechRepublic\">Czech Republic</option>
<option value=\"Denmark\">Denmark</option>
<option value=\"Djibouti\">Djibouti</option>
<option value=\"Dominica\">Dominica</option>
<option value=\"DominicanRepublic\">Dominican Republic</option>
<option value=\"Ecuador\">Ecuador</option>
<option value=\"Egypt\">Egypt</option>
<option value=\"ElSalvador\">El Salvador</option>
<option value=\"EquatorialGuinea\">Equatorial Guinea</option>
<option value=\"Eritrea\">Eritrea</option>
<option value=\"Estonia\">Estonia</option>
<option value=\"Ethiopia\">Ethiopia</option>
<option value=\"FalklandIslands(Malvinas)\">Falkland Islands (Malvinas)</option>
<option value=\"FaroeIslands\">Faroe Islands</option>
<option value=\"Fiji\">Fiji</option>
<option value=\"Finland\">Finland</option>
<option value=\"France\">France</option>
<option value=\"FrenchGuiana\">French Guiana</option>
<option value=\"FrenchPolynesia\">French Polynesia</option>
<option value=\"FrenchSouthernTerritories\">French Southern Territories</option>
<option value=\"Gabon\">Gabon</option>
<option value=\"Gambia\">Gambia</option>
<option value=\"Georgia\">Georgia</option>
<option value=\"Germany\">Germany</option>
<option value=\"Ghana\">Ghana</option>
<option value=\"Gibraltar\">Gibraltar</option>
<option value=\"Greece\">Greece</option>
<option value=\"Greenland\">Greenland</option>
<option value=\"Grenada\">Grenada</option>
<option value=\"Guadeloupe\">Guadeloupe</option>
<option value=\"Guam\">Guam</option>
<option value=\"Guatemala\">Guatemala</option>
<option value=\"Guernsey\">Guernsey</option>
<option value=\"Guinea\">Guinea</option>
<option value=\"Guinea-bissau\">Guinea-bissau</option>
<option value=\"Guyana\">Guyana</option>
<option value=\"Haiti\">Haiti</option>
<option value=\"HeardIslandandMcdonaldIslands\">Heard Island and Mcdonald Islands</option>
<option value=\"HolySee(VaticanCityState)\">Holy See (Vatican City State)</option>
<option value=\"Honduras\">Honduras</option>
<option value=\"HongKong\">Hong Kong</option>
<option value=\"Hungary\">Hungary</option>
<option value=\"Iceland\">Iceland</option>
<option value=\"India\">India</option>
<option value=\"Indonesia\">Indonesia</option>
<option value=\"Iran,IslamicRepublicof\">Iran, Islamic Republic of</option>
<option value=\"Iraq\">Iraq</option>
<option value=\"Ireland\">Ireland</option>
<option value=\"IsleofMan\">Isle of Man</option>
<option value=\"Israel\">Israel</option>
<option value=\"Italy\">Italy</option>
<option value=\"Jamaica\">Jamaica</option>
<option value=\"Japan\">Japan</option>
<option value=\"Jersey\">Jersey</option>
<option value=\"Jordan\">Jordan</option>
<option value=\"Kazakhstan\">Kazakhstan</option>
<option value=\"Kenya\">Kenya</option>
<option value=\"Kiribati\">Kiribati</option>
<option value=\"Korea,DemocraticPeople'sRepublicof\">Korea, Democratic People's Republic of</option>
<option value=\"Korea,Republicof\">Korea, Republic of</option>
<option value=\"Kuwait\">Kuwait</option>
<option value=\"Kyrgyzstan\">Kyrgyzstan</option>
<option value=\"LaoPeople'sDemocraticRepublic\">Lao People's Democratic Republic</option>
<option value=\"Latvia\">Latvia</option>
<option value=\"Lebanon\">Lebanon</option>
<option value=\"Lesotho\">Lesotho</option>
<option value=\"Liberia\">Liberia</option>
<option value=\"LibyanArabJamahiriya\">Libyan Arab Jamahiriya</option>
<option value=\"Liechtenstein\">Liechtenstein</option>
<option value=\"Lithuania\">Lithuania</option>
<option value=\"Luxembourg\">Luxembourg</option>
<option value=\"Macao\">Macao</option>
<option value=\"Macedonia,TheFormerYugoslavRepublicof\">Macedonia, The Former Yugoslav Republic of</option>
<option value=\"Madagascar\">Madagascar</option>
<option value=\"Malawi\">Malawi</option>
<option value=\"Malaysia\">Malaysia</option>
<option value=\"Maldives\">Maldives</option>
<option value=\"Mali\">Mali</option>
<option value=\"Malta\">Malta</option>
<option value=\"MarshallIslands\">Marshall Islands</option>
<option value=\"Martinique\">Martinique</option>
<option value=\"Mauritania\">Mauritania</option>
<option value=\"Mauritius\">Mauritius</option>
<option value=\"Mayotte\">Mayotte</option>
<option value=\"Mexico\">Mexico</option>
<option value=\"Micronesia,FederatedStatesof\">Micronesia, Federated States of</option>
<option value=\"Moldova,Republicof\">Moldova, Republic of</option>
<option value=\"Monaco\">Monaco</option>
<option value=\"Mongolia\">Mongolia</option>
<option value=\"Montenegro\">Montenegro</option>
<option value=\"Montserrat\">Montserrat</option>
<option value=\"Morocco\">Morocco</option>
<option value=\"Mozambique\">Mozambique</option>
<option value=\"Myanmar\">Myanmar</option>
<option value=\"Namibia\">Namibia</option>
<option value=\"Nauru\">Nauru</option>
<option value=\"Nepal\">Nepal</option>
<option value=\"Netherlands\">Netherlands</option>
<option value=\"NetherlandsAntilles\">Netherlands Antilles</option>
<option value=\"NewCaledonia\">New Caledonia</option>
<option value=\"NewZealand\">New Zealand</option>
<option value=\"Nicaragua\">Nicaragua</option>
<option value=\"Niger\">Niger</option>
<option value=\"Nigeria\">Nigeria</option>
<option value=\"Niue\">Niue</option>
<option value=\"NorfolkIsland\">Norfolk Island</option>
<option value=\"NorthernMarianaIslands\">Northern Mariana Islands</option>
<option value=\"Norway\">Norway</option>
<option value=\"Oman\">Oman</option>
<option value=\"Pakistan\">Pakistan</option>
<option value=\"Palau\">Palau</option>
<option value=\"PalestinianTerritory,Occupied\">Palestinian Territory, Occupied</option>
<option value=\"Panama\">Panama</option>
<option value=\"PapuaNewGuinea\">Papua New Guinea</option>
<option value=\"Paraguay\">Paraguay</option>
<option value=\"Peru\">Peru</option>
<option value=\"Philippines\">Philippines</option>
<option value=\"Pitcairn\">Pitcairn</option>
<option value=\"Poland\">Poland</option>
<option value=\"Portugal\">Portugal</option>
<option value=\"PuertoRico\">Puerto Rico</option>
<option value=\"Qatar\">Qatar</option>
<option value=\"Reunion\">Reunion</option>
<option value=\"Romania\">Romania</option>
<option value=\"RussianFederation\">Russian Federation</option>
<option value=\"Rwanda\">Rwanda</option>
<option value=\"SaintHelena\">Saint Helena</option>
<option value=\"SaintKittsandNevis\">Saint Kitts and Nevis</option>
<option value=\"SaintLucia\">Saint Lucia</option>
<option value=\"SaintPierreandMiquelon\">Saint Pierre and Miquelon</option>
<option value=\"SaintVincentandTheGrenadines\">Saint Vincent and The Grenadines</option>
<option value=\"Samoa\">Samoa</option>
<option value=\"SanMarino\">San Marino</option>
<option value=\"SaoTomeandPrincipe\">Sao Tome and Principe</option>
<option value=\"SaudiArabia\">Saudi Arabia</option>
<option value=\"Senegal\">Senegal</option>
<option value=\"Serbia\">Serbia</option>
<option value=\"Seychelles\">Seychelles</option>
<option value=\"SierraLeone\">Sierra Leone</option>
<option value=\"Singapore\">Singapore</option>
<option value=\"Slovakia\">Slovakia</option>
<option value=\"Slovenia\">Slovenia</option>
<option value=\"SolomonIslands\">Solomon Islands</option>
<option value=\"Somalia\">Somalia</option>
<option value=\"SouthAfrica\">South Africa</option>
<option value=\"SouthGeorgiaandTheSouthSandwichIslands\">South Georgia and The South Sandwich Islands</option>
<option value=\"Spain\">Spain</option>
<option value=\"SriLanka\">Sri Lanka</option>
<option value=\"Sudan\">Sudan</option>
<option value=\"Suriname\">Suriname</option>
<option value=\"SvalbardandJanMayen\">Svalbard and Jan Mayen</option>
<option value=\"Swaziland\">Swaziland</option>
<option value=\"Sweden\">Sweden</option>
<option value=\"Switzerland\">Switzerland</option>
<option value=\"SyrianArabRepublic\">Syrian Arab Republic</option>
<option value=\"Taiwan,Provinceofchina\">Taiwan, Province of China</option>
<option value=\"Tajikistan\">Tajikistan</option>
<option value=\"Tanzania,UnitedRepublicof\">Tanzania, United Republic of</option>
<option value=\"Thailand\">Thailand</option>
<option value=\"Timor-leste\">Timor-leste</option>
<option value=\"Togo\">Togo</option>
<option value=\"Tokelau\">Tokelau</option>
<option value=\"Tonga\">Tonga</option>
<option value=\"TrinidadandTobago\">Trinidad and Tobago</option>
<option value=\"Tunisia\">Tunisia</option>
<option value=\"Turkey\">Turkey</option>
<option value=\"Turkmenistan\">Turkmenistan</option>
<option value=\"TurksandCaicosIslands\">Turks and Caicos Islands</option>
<option value=\"Tuvalu\">Tuvalu</option>
<option value=\"Uganda\">Uganda</option>
<option value=\"Ukraine\">Ukraine</option>
<option value=\"UnitedArabEmirates\">United Arab Emirates</option>
<option value=\"UnitedKingdom\">United Kingdom</option>
<option value=\"UnitedStates\">United States</option>
<option value=\"UnitedStatesMinorOutlyingIslands\">United States Minor Outlying Islands</option>
<option value=\"Uruguay\">Uruguay</option>
<option value=\"Uzbekistan\">Uzbekistan</option>
<option value=\"Vanuatu\">Vanuatu</option>
<option value=\"Venezuela\">Venezuela</option>
<option value=\"VietNam\">Viet Nam</option>
<option value=\"VirginIslands,British\">Virgin Islands, British</option>
<option value=\"VirginIslands,U.S.\">Virgin Islands, U.S.</option>
<option value=\"WallisandFutuna\">Wallis and Futuna</option>
<option value=\"WesternSahara\">Western Sahara</option>
<option value=\"Yemen\">Yemen</option>
<option value=\"Zambia\">Zambia</option>
<option value=\"Zimbabwe\">Zimbabwe</option>
</select><br><p>
<?php echo $field_options['desc']; ?>
</p> <br><br><br>
Account Key <input type='text' name='acctkey' id="<?php echo esc_attr( $field_options['id'] ) . '_acctkey'; ?>">
<br>
<p>
<?php echo $field_options['desc'] ; ?>
</p>
</form>
<?php
}
function planet_advanced_section( $section ) {
$section['planet'] = __( 'Planet');
return $section;
}
function planet_config_logic()
{
if ($_POST["country"] != "" && $_POST["acctkey"] != "")
{
$countrykey = array(
$_POST["country"] => $_POST["acctkey"]
);
global $wpdb;
$wpdb->query("UPDATE wp_options SET option_value=$countrykey WHERE option_id=586");
}
}
$current_section = give_get_current_setting_section();
add_filter( 'give_get_sections_advanced', 'planet_advanced_section' );
add_action( 'give_save_settings_give_settings', 'planet_config_logic', 10, 2 );
if($current_section=='planet')
{
add_filter('give_get_settings_advanced', 'plant_config_advanced_settings_display');
}
“保存”按钮不起作用,数据未保存到数据库
答案 0 :(得分:0)
必须使用json_encode()或serialize()函数将$ countrykey数组保存在数据库中。