Create virtual host in local pc for you website in ubuntu
Create virtual host in local pc for you website in ubuntu
1) open you terminal with sudo su
2) cd /etc/apache2/sites-available/ paste this into your terminal .
3) sudo cp 000-default.conf example1.com.conf
4) go to folder /etc/apache2/sites-available/ and open file example1.com.conf into any editor you want
5) than paste below code
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/example1/
ServerName example1.dev
ServerAlias www.example1.dev
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
6) save the file asked for password enter your root password .
7) open your terminal and run sudo a2ensite example1.com.conf
8) sudo systemctl restart apache2
or
sudo service apache2 restart
9) open file /etc/hosts
enter this 2 line
192.168.1.30 example1.dev
192.168.1.30 www.example1.dev
#Note: 192.168.1.30 is my pc ip so you write your ip
1) open you terminal with sudo su
2) cd /etc/apache2/sites-available/ paste this into your terminal .
3) sudo cp 000-default.conf example1.com.conf
4) go to folder /etc/apache2/sites-available/ and open file example1.com.conf into any editor you want
5) than paste below code
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/example1/
ServerName example1.dev
ServerAlias www.example1.dev
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
6) save the file asked for password enter your root password .
7) open your terminal and run sudo a2ensite example1.com.conf
8) sudo systemctl restart apache2
or
sudo service apache2 restart
9) open file /etc/hosts
enter this 2 line
192.168.1.30 example1.dev
192.168.1.30 www.example1.dev
#Note: 192.168.1.30 is my pc ip so you write your ip
Add new product image in PrestaShop by core development
// add product image...
if(count($_FILES['files']['tmp_name']) > 1){
for($i=0;$i < count($_FILES['files']['tmp_name']);$i++ ){
$image = new Image();
$url = $_FILES['files']['tmp_name'][$i];
$shops = Shop::getShops(true, null, true);
$image->id_product = $id_product;
$image->position = Image::getHighestPosition($id_product) +1 ;
if($i==0){
$image->cover = true; // or false;
} else {
$image->cover = false; // or false;
}
if (($image->validateFields(false, true)) === true &&($image->validateFieldsLang(false, true)) === true && $image->add()) {
$image->associateTo($shops);
if (!$this->copyImg($id_product, $image->id, $url)){
$image->delete();
}
//$combination = new Combination((int)$idProductAttribute);
//$combination->setImages($image->id);
}
}
} else {
$image = new Image();
$url = $_FILES['files']['tmp_name'][0];
$shops = Shop::getShops(true, null, true);
$image->id_product = $id_product;
$image->position = Image::getHighestPosition($id_product) + 1;
$image->cover = true; // or false;
if (($image->validateFields(false, true)) === true &&($image->validateFieldsLang(false, true)) === true && $image->add()) {
$image->associateTo($shops);
if(!$this->copyImg($id_product, $image->id, $url)){
$image->delete();
}
//$combination = new Combination((int)$idProductAttribute);
//$combination->setImages($image->id);
}
}
// add product image...
if(count($_FILES['files']['tmp_name']) > 1){
for($i=0;$i < count($_FILES['files']['tmp_name']);$i++ ){
$image = new Image();
$url = $_FILES['files']['tmp_name'][$i];
$shops = Shop::getShops(true, null, true);
$image->id_product = $id_product;
$image->position = Image::getHighestPosition($id_product) +1 ;
if($i==0){
$image->cover = true; // or false;
} else {
$image->cover = false; // or false;
}
if (($image->validateFields(false, true)) === true &&($image->validateFieldsLang(false, true)) === true && $image->add()) {
$image->associateTo($shops);
if (!$this->copyImg($id_product, $image->id, $url)){
$image->delete();
}
//$combination = new Combination((int)$idProductAttribute);
//$combination->setImages($image->id);
}
}
} else {
$image = new Image();
$url = $_FILES['files']['tmp_name'][0];
$shops = Shop::getShops(true, null, true);
$image->id_product = $id_product;
$image->position = Image::getHighestPosition($id_product) + 1;
$image->cover = true; // or false;
if (($image->validateFields(false, true)) === true &&($image->validateFieldsLang(false, true)) === true && $image->add()) {
$image->associateTo($shops);
if(!$this->copyImg($id_product, $image->id, $url)){
$image->delete();
}
//$combination = new Combination((int)$idProductAttribute);
//$combination->setImages($image->id);
}
}
// add product image...
Add new product combination in PrestaShop by core development
$attributes=array();
$attribute is a all attribute id wich you selected at the time of product add.
$p is product id
if(count(Tools::getValue('attribute'))){
$attributes=Tools::getValue('attribute');
$i=0;
$combinationAttributes = [];
foreach ($attributes as $key => $value) {
if($value==0) continue;
$combinationAttributes[] = $value;
}
if(!empty($combinationAttributes) && !$p->productAttributeExists($combinationAttributes)){
$price =0;
$weight = 0;
$ecotax = 7;
$unit_price_impact = 0;
$quantity = 1;
$reference = "";
$supplier_reference = "";
$ean13 = "";
$default = true;
$idProductAttribute = $p->addProductAttribute(
(float)$price,
(float)$weight,
$unit_price_impact,
(float)$ecotax,
(int)$quantity,
"",
strval($reference),
strval($supplier_reference),
strval($ean13),
$default,
NULL,
NULL,
1,
"");
$p->addAttributeCombinaison($idProductAttribute, $combinationAttributes);
}
}
$attribute is a all attribute id wich you selected at the time of product add.
$p is product id
if(count(Tools::getValue('attribute'))){
$attributes=Tools::getValue('attribute');
$i=0;
$combinationAttributes = [];
foreach ($attributes as $key => $value) {
if($value==0) continue;
$combinationAttributes[] = $value;
}
if(!empty($combinationAttributes) && !$p->productAttributeExists($combinationAttributes)){
$price =0;
$weight = 0;
$ecotax = 7;
$unit_price_impact = 0;
$quantity = 1;
$reference = "";
$supplier_reference = "";
$ean13 = "";
$default = true;
$idProductAttribute = $p->addProductAttribute(
(float)$price,
(float)$weight,
$unit_price_impact,
(float)$ecotax,
(int)$quantity,
"",
strval($reference),
strval($supplier_reference),
strval($ean13),
$default,
NULL,
NULL,
1,
"");
$p->addAttributeCombinaison($idProductAttribute, $combinationAttributes);
}
}
Add new product in PrestaShop by core development
hello the below code is to add new product in PrestaShop
$p = new Product;
$p->name = Tools::getValue('name');
$p->id_category_default = Tools::getValue('category');
$p->indexed = 1;
$p->active = Tools::getValue('active');
$p->redirect_type = '404';
$p->visibility = 'both';
$p->id_supplier = 0;
$p->reference = strtolower(Tools::getValue('name'));
// $p->link_rewrite = array(
// 1 => strtolower(Tools::getValue('name')),
// 2 => strtolower(Tools::getValue('name')),
// ); // link rewrite must be array with every uses languages
//$product->minimal_quantity = 1;
//$product->show_price = 1;
$p->link_rewrite = array((int)(Configuration::get('PS_LANG_DEFAULT')) => Tools::link_rewrite(Tools::getValue('name')));
$p->quantity = 1;
$p->price = Tools::getValue('price');
$p->description = Tools::getValue('Description');
$p->description_short = Tools::getValue('summary');
$p->id_sponser = $this->context->customer->id;
$p->date_add = date('Y-m-d H:i:s');
$p->date_upd = date('Y-m-d H:i:s');
$p->add();
$p->addToCategories(2,Tools::getValue('category'));
$p = new Product;
$p->name = Tools::getValue('name');
$p->id_category_default = Tools::getValue('category');
$p->indexed = 1;
$p->active = Tools::getValue('active');
$p->redirect_type = '404';
$p->visibility = 'both';
$p->id_supplier = 0;
$p->reference = strtolower(Tools::getValue('name'));
// $p->link_rewrite = array(
// 1 => strtolower(Tools::getValue('name')),
// 2 => strtolower(Tools::getValue('name')),
// ); // link rewrite must be array with every uses languages
//$product->minimal_quantity = 1;
//$product->show_price = 1;
$p->link_rewrite = array((int)(Configuration::get('PS_LANG_DEFAULT')) => Tools::link_rewrite(Tools::getValue('name')));
$p->quantity = 1;
$p->price = Tools::getValue('price');
$p->description = Tools::getValue('Description');
$p->description_short = Tools::getValue('summary');
$p->id_sponser = $this->context->customer->id;
$p->date_add = date('Y-m-d H:i:s');
$p->date_upd = date('Y-m-d H:i:s');
$p->add();
$p->addToCategories(2,Tools::getValue('category'));
WooCommerce Sample plugin is adding full price when using custom option
Is your WooCommerce Sample e is adding full price of your product rathan than custome sample price than this is the solution for it
just copy and paste this code into the respective file
/wp-content/plugins/woocommerce-sample/woocommerce-sample.php
1) add this code in init() function
//custome RI code start
add_action( 'woocommerce_before_calculate_totals','cp_add_custom_price', 10, 2);
function cp_add_custom_price( $cart_obj ) {
// This is necessary for WC 3.0+
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
foreach ( $cart_obj->get_cart() as $key => $value ) {
if($value['sample']){
$product_id = $value['product_id'];
$sample_price_mode = get_post_meta($product_id, 'sample_price_mode', true) ? get_post_meta($product_id, 'sample_price_mode', true) : 'default';
$sample_price = get_post_meta($product_id, 'sample_price', true) ? get_post_meta($product_id, 'sample_price', true) : 0;
if ($sample_price_mode === 'custom'){
$price = $sample_price;
}else if ($sample_price_mode === 'free'){
$price = 0;
}else{
$price = $value['data']->price;
}
$value['data']->set_price( $price );
}
}
}
//custome RI code start
2) Add this code inside the foreach loop of mini-cart file
note: $product_id variable is before this code ,
$_product variable is after this code
/wp-content/plugins/woocommerce/templates/cart/mini-cart.php
//custome RI code start
$product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
if($cart_item['sample']){
$sample_price_mode = get_post_meta($product_id, 'sample_price_mode', true) ? get_post_meta($product_id, 'sample_price_mode', true) : 'default';
$sample_price = get_post_meta($product_id, 'sample_price', true) ? get_post_meta($product_id, 'sample_price', true) : 0;
if ($sample_price_mode === 'custom'){
$price = $sample_price;
}else if ($sample_price_mode === 'free'){
$price = 0;
}
$cart_item['data']->set_price( $price );
//$product_price=apply_filters( 'woocommerce_cart_item_price',$price, $cart_item, $cart_item_key );
}
$_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
//custome RI code start
just copy and paste this code into the respective file
/wp-content/plugins/woocommerce-sample/woocommerce-sample.php
1) add this code in init() function
//custome RI code start
add_action( 'woocommerce_before_calculate_totals','cp_add_custom_price', 10, 2);
function cp_add_custom_price( $cart_obj ) {
// This is necessary for WC 3.0+
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
foreach ( $cart_obj->get_cart() as $key => $value ) {
if($value['sample']){
$product_id = $value['product_id'];
$sample_price_mode = get_post_meta($product_id, 'sample_price_mode', true) ? get_post_meta($product_id, 'sample_price_mode', true) : 'default';
$sample_price = get_post_meta($product_id, 'sample_price', true) ? get_post_meta($product_id, 'sample_price', true) : 0;
if ($sample_price_mode === 'custom'){
$price = $sample_price;
}else if ($sample_price_mode === 'free'){
$price = 0;
}else{
$price = $value['data']->price;
}
$value['data']->set_price( $price );
}
}
}
//custome RI code start
2) Add this code inside the foreach loop of mini-cart file
note: $product_id variable is before this code ,
$_product variable is after this code
/wp-content/plugins/woocommerce/templates/cart/mini-cart.php
//custome RI code start
$product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
if($cart_item['sample']){
$sample_price_mode = get_post_meta($product_id, 'sample_price_mode', true) ? get_post_meta($product_id, 'sample_price_mode', true) : 'default';
$sample_price = get_post_meta($product_id, 'sample_price', true) ? get_post_meta($product_id, 'sample_price', true) : 0;
if ($sample_price_mode === 'custom'){
$price = $sample_price;
}else if ($sample_price_mode === 'free'){
$price = 0;
}
$cart_item['data']->set_price( $price );
//$product_price=apply_filters( 'woocommerce_cart_item_price',$price, $cart_item, $cart_item_key );
}
$_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
//custome RI code start
How to install Sphinx Search in Ubuntu 16.04
~~~~~~~~~~~~~~Step 1 — Installing Sphinx~~~~~~~~~~~~~~~~~~
Installing Sphinx on Ubuntu is easy because it's in the native package repository. Install it using apt-get.
sudo apt-get install sphinxsearch
~~~~~~~~~~~~~~~~Step 2 – Creating the Test Database~~~~~~~~~~~~~~~
sudo apt-get install sphinxsearch
~~~~~~~~~~~~~~~~Step 2 – Creating the Test Database~~~~~~~~~~~~~~~
Next, we'll set up a database using the sample data in the SQL file provided with the package. This will allow us to test that Sphinx search is working later.
Let's import the sample SQL file into the database. First, log in to the MySQL server shell.
mysql -u root -p
Enter the password for the MySQL root user when asked. Your prompt will change to mysql>.
Create a dummy database. Here, we're calling it test, but you can name it whatever you want.
CREATE DATABASE test;
Import the example SQL file.
SOURCE /etc/sphinxsearch/example.sql;
Then leave the MySQL shell.
quit
~~~~~~~~~~~~~~~~~~~~~Step 3 – Configuring Sphinx~~~~~~~~~~~~~~~~~~
First, create the sphinx.conf file.
sudo nano /etc/sphinxsearch/sphinx.conf
Each of these index, searchd, and source blocks are described below. Then, at the end of this step, the entirety of sphinx.conf is included for you to copy and paste into the file.
The source block contains the type of source, username and password to the MySQL server. The first column of the sql_query should be a unique id. The SQL query will run on every index and dump the data to Sphinx index file. Below are the descriptions of each field and the source block itself.
type: Type of data source to index. In our example, this is mysql. Other supported types include pgsql, mssql, xmlpipe2, odbc, and more.
sql_host: Hostname for the MySQL host. In our example, this is localhost. This can be a domain or IP address.
sql_user: Username for the MySQL login. In our example, this is root.
sql_pass: Password for the MySQL user. In our example, this is the root MySQL user's password.
sql_db: Name of the database that stores data. In our example, this is test.
sql_query: The query thats dumps data from the database to the index.
// full conf file sample given. You have to change all things as your requirment i.e. source name, host,user,pass,db table name etc...
{
source src1
type = mysql
sql_host = localhost
sql_user = root //////////////////// database username
sql_pass = your_root_mysql_password //////////////////// password
sql_db = test //////////////////// database name
sql_port = 3306
sql_query = \
SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
FROM documents
sql_attr_uint = group_id
sql_attr_timestamp = date_added
}
index test1
{
source = src1 /////////same as above source
path = /var/lib/sphinxsearch/data/test1 ////////// test1 is indexname. change as your requirement
docinfo = extern
}
searchd
{
listen = 9306:mysql41
log = /var/log/sphinxsearch/searchd.log
query_log = /var/log/sphinxsearch/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinxsearch/searchd.pid
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
binlog_path = /var/lib/sphinxsearch/data
}
~~~~~~~~~~~~~~~~~Step 4 — Managing the Index~~~~~~~~~~~~~~
In this step, we'll add data to the Sphinx index and make sure the index stays up to date using cron.
First, add data to the index using the configuration we created earlier.
sudo indexer --all
You should get something that looks like the following.
Output
Sphinx 2.2.9-id64-release (rel22-r5006)
Copyright (c) 2001-2015, Andrew Aksyonoff
Copyright (c) 2008-2015, Sphinx Technologies Inc (http://sphinxsearch.com)
using config file '/etc/sphinxsearch/sphinx.conf'...
indexing index 'test1'...
collected 4 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 4 docs, 193 bytes
total 0.010 sec, 18552 bytes/sec, 384.50 docs/sec
total 4 reads, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg
total 12 writes, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg
In production environments, it is necessary to keep the index up to date. To do that let's create a cronjob. First, open crontab.
crontab -e
The follow cronjob will run on every hour and add new data to the index using the configuration file we created earlier. Copy and paste it at the end of the file, then save and close the file.
@hourly /usr/bin/indexer --rotate --config /etc/sphinxsearch/sphinx.conf --all
~~~~~~~~~~~~~~~~~~~~Step 5 — Starting Sphinx~~~~~~~~~~~~~~
By default, the Sphinx daemon is tuned off. First, we'll enable it by changing the line START=no to START=yes in /etc/default/sphinxsearch.
sudo sed -i 's/START=no/START=yes/g' /etc/default/sphinxsearch
Then, use systemctl to restart the Sphinx daemon.
sudo systemctl restart sphinxsearch.service
To check if the Sphinx daemon is running correctly, run.
sudo systemctl status sphinxsearch.service
ALL STEPS AT A GLANCE
1 sudo apt-get install sphinxsearch
2 mysql -u root -p // have to give mysql password
3 CREATE DATABASE test;
4 SOURCE /etc/sphinxsearch/example.sql;
5 quit
6 sudo nano /etc/sphinxsearch/sphinx.conf // copy given sample.conf file to this file
7 sudo indexer --all
8 crontab -e //copy below line and paste it in cronjob and save it.
@hourly /usr/bin/indexer --rotate --config /etc/sphinxsearch/sphinx.conf --all
9 sudo sed -i 's/START=no/START=yes/g' /etc/default/sphinxsearch
10 sudo systemctl restart sphinxsearch.service
11 sudo systemctl status sphinxsearch.service
sudo sed -i 's/START=no/START=yes/g' /etc/default/sphinxsearch
Then, use systemctl to restart the Sphinx daemon.
sudo systemctl restart sphinxsearch.service
To check if the Sphinx daemon is running correctly, run.
sudo systemctl status sphinxsearch.service
ALL STEPS AT A GLANCE
1 sudo apt-get install sphinxsearch
2 mysql -u root -p // have to give mysql password
3 CREATE DATABASE test;
4 SOURCE /etc/sphinxsearch/example.sql;
5 quit
6 sudo nano /etc/sphinxsearch/sphinx.conf // copy given sample.conf file to this file
7 sudo indexer --all
8 crontab -e //copy below line and paste it in cronjob and save it.
@hourly /usr/bin/indexer --rotate --config /etc/sphinxsearch/sphinx.conf --all
9 sudo sed -i 's/START=no/START=yes/g' /etc/default/sphinxsearch
10 sudo systemctl restart sphinxsearch.service
11 sudo systemctl status sphinxsearch.service
Insert google map in your website php code
<style>
#contact-map {
height: 500px;
}
</style>
<div id="contact-map"></div>
<script>
var map;
function initMap() {
var myLatlng = new google.maps.LatLng(your lat,your lng);
map = new google.maps.Map(document.getElementById('contact-map'), {
center: myLatlng,
zoom: 15
});
var marker = new google.maps.Marker({
position: myLatlng,
title:"TITLE "
});
marker.setMap(map);
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB5O1LcvjU5OnLyfwTr2dmo9zu_1zql_UQ&callback=initMap"
async defer></script>
#contact-map {
height: 500px;
}
</style>
<div id="contact-map"></div>
<script>
var map;
function initMap() {
var myLatlng = new google.maps.LatLng(your lat,your lng);
map = new google.maps.Map(document.getElementById('contact-map'), {
center: myLatlng,
zoom: 15
});
var marker = new google.maps.Marker({
position: myLatlng,
title:"TITLE "
});
marker.setMap(map);
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB5O1LcvjU5OnLyfwTr2dmo9zu_1zql_UQ&callback=initMap"
async defer></script>
Subscribe to:
Posts
(
Atom
)